A326191 Length of the longest path to 1 when starting from x=n and on each iteration step one may always choose either transition x -> A032742(x) or x -> A302042(x).
0, 1, 1, 2, 1, 2, 1, 3, 2, 2, 1, 3, 1, 2, 2, 4, 1, 3, 1, 3, 3, 2, 1, 4, 2, 2, 3, 3, 1, 3, 1, 5, 3, 2, 2, 4, 1, 2, 2, 4, 1, 4, 1, 3, 4, 2, 1, 5, 2, 3, 3, 3, 1, 4, 3, 4, 4, 2, 1, 4, 1, 2, 4, 6, 2, 4, 1, 3, 4, 3, 1, 5, 1, 2, 3, 3, 2, 3, 1, 5, 4, 2, 1, 5, 3, 2, 3, 4, 1, 5, 3, 3, 5, 2, 2, 6, 1, 3, 4, 4, 1, 4, 1, 4, 4
Offset: 1
Keywords
Examples
The directed acyclic graph whose unique root is 153 (illustrated below), spans the following seven numbers [1, 5, 17, 25, 51, 75, 153], as A032742(153) = 51, A302042(153) = 75, A032742(51) = 17, A302042(51) = 25, A032742(75) = 25, A302042(75) = 15, A032742(25) = A302042(25) = 5, and A032742(17) = A302042(17) = A032742(5) = A302042(5) = 1. The length of longest path(s) from 153 to 1 is 4 (there are actually two longest paths: 153 -> 51 -> 25 -> 5 -> 1 and 153 -> 75 -> 25 -> 5 -> 1), thus a(153) = 4. . 153 / \ / \ 51 75 / \ / \ / 17 \ \ | / \ 1 / \ / \ / 25 | 5 | 1
Links
- Antti Karttunen, Table of n, a(n) for n = 1..65537
Programs
-
PARI
up_to = 65537; ordinal_transform(invec) = { my(om = Map(), outvec = vector(length(invec)), pt); for(i=1, length(invec), if(mapisdefined(om,invec[i]), pt = mapget(om, invec[i]), pt = 0); outvec[i] = (1+pt); mapput(om,invec[i],(1+pt))); outvec; }; rgs_transform(invec) = { my(om = Map(), outvec = vector(length(invec)), u=1); for(i=1, length(invec), if(mapisdefined(om,invec[i]), my(pp = mapget(om, invec[i])); outvec[i] = outvec[pp] , mapput(om,invec[i],i); outvec[i] = u; u++ )); outvec; }; A020639(n) = if(n>1, if(n>n=factor(n, 0)[1, 1], n, factor(n)[1, 1]), 1); \\ From A020639 A032742(n) = (n/A020639(n)); v078898 = ordinal_transform(vector(up_to,n,A020639(n))); A078898(n) = v078898[n]; A302042(n) = if((1==n)||isprime(n),1,my(c = A078898(n), p = prime(-1+primepi(A020639(n))+primepi(A020639(c))), d = A078898(c), k=0); while(d, k++; if((1==k)||(A020639(k)>=p),d -= 1)); (k*p)); A326191(n) = if(1==n,0,1+max(A326191(A032742(n)), A326191(A302042(n)))); \\ Slightly faster: memo302042 = Map(); A302042(n) = if((1==n)||isprime(n),1,my(v); if(mapisdefined(memo302042, n, &v), v, my(c = A078898(n), p = prime(-1+primepi(A020639(n))+primepi(A020639(c))), d = A078898(c), k=0); while(d, k++; if((1==k)||(A020639(k)>=p),d -= 1)); v=(k*p); mapput(memo302042,n,v); (v))); A326191list(up_to) = { my(v=vector(up_to)); v[1] = 0; for(n=2,up_to, v[n] = 1+max(v[A032742(n)], v[A302042(n)])); (v); }; v326191 = A326191list(up_to); A326191(n) = v326191[n];