A302041 An omega analog for a nonstandard factorization based on the sieve of Eratosthenes (A083221).
0, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 3, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 3, 1, 2, 2, 2, 1, 3, 1, 2, 2, 1, 2, 3, 1, 2, 2, 3, 1, 2, 1, 2, 2, 2, 2, 3, 1, 2, 2, 2, 1, 2, 2, 2, 3, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 3, 1, 2, 2
Offset: 1
Keywords
Links
Crossrefs
Programs
-
PARI
\\ Assuming A250469 and its inverse A268674 have been precomputed, then the following is reasonably fast: A302044(n) = if(1==n,n,my(k=0); while((n%2), n = A268674(n); k++); n = (n/2^valuation(n, 2)); while(k>0, n = A250469(n); k--); (n)); A302041(n) = if(1==n, 0,1+A302041(A302044(n)));
-
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; }; A020639(n) = if(n>1, if(n>n=factor(n, 0)[1, 1], n, factor(n)[1, 1]), 1); \\ From A020639 v078898 = ordinal_transform(vector(up_to,n,A020639(n))); A078898(n) = v078898[n]; A000265(n) = (n/2^valuation(n, 2)); A302044(n) = { my(c = A000265(A078898(n))); if(1==c,1,my(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)); }; A302041(n) = if(1==n, 0,1+A302041(A302044(n)));
-
PARI
\\ Or, using also some of the code from above: A003961(n) = my(f = factor(n)); for (i=1, #f~, f[i, 1] = nextprime(f[i, 1]+1)); factorback(f); \\ From A003961 A055396(n) = if(1==n,0,primepi(A020639(n))); A250246(n) = if(1==n,n,my(k = 2*A250246(A078898(n)), r = A055396(n)); if(1==r, k, while(r>1, k = A003961(k); r--); (k))); A302041(n) = omega(A250246(n));