explore(a,mx,n,p,m) = \ my (v=[n]); \ for (i=1, m, \ my (nn = n*prime(p)^a[i]); \ if (nn>mx, break); \ v = concat(v, explore(a,mx,nn,p+1,i)) \ ); \ return (v) iterate(a,mx) = \ return (vecsort((explore(a,min(2^a[#a], mx),1,1,#a)))) limit = 525125950364605590000000000000000 a = [1] while (1, br=a[#a] > log(limit); a = iterate(a, limit); if (br, break)) for (n=1, #a, print (n " " a[n])) quit