seen = 0 unseen = 1 ok(p, v) = { my (f=factor(v)); for (i=1, #f~, if (valuation(p, f[i,1])+1!=f[i,2], return (0); ); ); return (1) } other(p) = { for (v=unseen, oo, if (!bit test(seen, v) && ok(p, v), return (v); ); ); } { for (n=1, 10 000, v = if (n==1, 1, other(v)); print (n " " v); seen += 2^v; while (bit test(seen, unseen), unseen++; ); ); } quit