s = 0 unseen = 1 seen(v) = bittest(s, v) see(v) = s = bitor(s, 2^v); while (seen(unseen), unseen++) rad(n) = vecprod(factor(n)[,1]~) { C = [6]; for (n = 1, 10 000, if (n==1, v = 1, n==2, v = 6, for (w=unseen, oo, if (!seen(w), if (omega(w)==1, see(w), gcd(pp, w)==1 && gcd(p, w)>1 && rad(p) % rad(w), v = w; break; ); ); ); ); see(v); while (omega(unseen)==1, unseen++; ); while (!i=setsearch(C, unseen), C = concat(C, select(v -> omega(v)>1, [C[#C]+1..2*C[#C]])); ); print (n " " i); [pp, p] = [p, v]; ); } quit