flat(n) = my (f=factor(n)); \ return (prod(k=1, #f~, f[k,1]*flat(f[k,2]))) change(gperm,n) = my (f=factor(n)); \ return (prod(k=1, #f~, prime(valuation(gperm, f[k,1]))^change(gperm, f[k,2]))) ok(n) = if (n==1, return (1)); \ my (f=factor(flat(n))); \ my (l=#f~); \ if (f[l,1]==prime(l), \ for (p=1, l!, \ my (perm=numtoperm(l,p)); \ my (gperm=prod(k=1, #perm, prime(k)^perm[k])); \ my (np=trap(, n+1, change(gperm, n))); \ if (np < n, \ return (0) \ ) \ ); \ return (1), \ return (0) \ ) i=0 for (n=1, 1 000 000, if (ok(n), i++; print(i " "n))) quit