login
Length of the shortest 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).
5

%I #14 Aug 24 2019 11:57:26

%S 0,1,1,2,1,2,1,3,2,2,1,3,1,2,2,4,1,3,1,3,2,2,1,4,2,2,2,3,1,3,1,5,2,2,

%T 2,4,1,2,2,4,1,3,1,3,3,2,1,5,2,3,2,3,1,3,2,4,2,2,1,4,1,2,2,6,2,3,1,3,

%U 2,3,1,5,1,2,2,3,2,3,1,5,3,2,1,4,2,2,2,4,1,4,2,3,2,2,2,6,1,3,2,4,1,3,1,4,3

%N Length of the shortest 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).

%H Antti Karttunen, <a href="/A326190/b326190.txt">Table of n, a(n) for n = 1..65537</a>

%F a(1) = 0; for n > 1, a(n) = 1 + min(a(A032742(n)), a(A302042(n))).

%F a(n) <= min(A001222(n),A253557(n)) <= max(A001222(n),A253557(n)) <= A326191(n) <= A326189(n).

%e 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 shortest path(s) from 153 to 1 is 3 (there are actually two shortest paths: 153 -> 51 -> 17 -> 1 and 153 -> 75 -> 17 -> 1), thus a(153) = 3.

%e .

%e 153

%e / \

%e / \

%e 51 75

%e / \ / \

%e / 17 \

%e \ | /

%e \ 1 /

%e \ /

%e \ /

%e 25

%e |

%e 5

%e |

%e 1

%o (PARI)

%o up_to = 65537;

%o 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; };

%o 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; };

%o A020639(n) = if(n>1, if(n>n=factor(n, 0)[1, 1], n, factor(n)[1, 1]), 1); \\ From A020639

%o A032742(n) = (n/A020639(n));

%o v078898 = ordinal_transform(vector(up_to,n,A020639(n)));

%o A078898(n) = v078898[n];

%o 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));

%o A326190(n) = if(1==n,0,1+min(A326190(A032742(n)), A326190(A302042(n))));

%o \\ Somewhat faster version:

%o memo302042 = Map();

%o 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)));

%o A326190list(up_to) = { my(v=vector(up_to)); v[1] = 0; for(n=2,up_to, v[n] = 1+min(v[A032742(n)], v[A302042(n)])); (v); };

%o v326190 = A326190list(up_to);

%o A326190(n) = v326190[n];

%Y Cf. A032742, A253557, A302042, A323888, A326075, A326139, A326089, A326191.

%K nonn

%O 1,4

%A _Antti Karttunen_, Aug 23 2019