A302044 A028234 analog for factorization process based on the sieve of Eratosthenes (A083221).
1, 1, 1, 1, 1, 3, 1, 1, 1, 5, 1, 3, 1, 7, 5, 1, 1, 9, 1, 5, 1, 11, 1, 3, 1, 13, 7, 7, 1, 15, 1, 1, 5, 17, 7, 9, 1, 19, 11, 5, 1, 21, 1, 11, 1, 23, 1, 3, 1, 25, 25, 13, 1, 27, 1, 7, 7, 29, 1, 15, 1, 31, 13, 1, 11, 33, 1, 17, 5, 35, 1, 9, 1, 37, 17, 19, 11, 39, 1, 5, 11, 41, 1, 21, 7, 43, 35, 11, 1, 45, 1, 23, 1, 47, 13, 3, 1, 49, 19, 25, 1, 51, 1, 13, 25
Offset: 1
Keywords
Links
Crossrefs
Programs
-
PARI
\\ Assuming A250469 and its inverse A268674 have been precomputed, then the following is fast enough: 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));
-
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; }; A000265(n) = (n/2^valuation(n, 2)); 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]; 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)); };
Comments