|
PROG
|
(PARI)oddfactfollow(n)={local(fm, np, r);
fm=factor(n); np=matsize(fm)[1]; r=[];
if(fm[1, 1]==3, r=concat(r, [n\3*5]);
if(np>1&&fm[2, 2]==1&&primepi(fm[2, 1])<=lim,
r=concat(r, [n\fm[2, 1]*nextprime(fm[2, 1]+1)])),
if(fm[1, 2]==1&&primepi(fm[1, 1])<=lim,
r=concat(r, [n\fm[1, 1]*nextprime(fm[1, 1]+1)]))); r}
anydiv(v, n, x)=for(k=1, n, if(x%v[k]==0, return(1))); 0
al(n) = {local(r, ms); r=vector(n); r[1]=2;
for(k=2, n, ms=[3^k];
while(anydiv(r, k-1, ms[1]),
ms=vecsort(concat(vector(#ms-1, j, ms[j+1]), oddfactfollow(ms[1]))))
r[k]=ms[1]);
r}
|