seen = 0 \\ mask of values seen so far unseen = 1 \\ least value not yet seen other(p) = my (v=unseen); while (bittest(seen, v)>0 || issquarefree(p*v), v++); seen += 2^v; while (bittest(seen, unseen), unseen++); return (v) \\ wanted = A285297 wanted = vector(2 000); w = 1; \\ a = A285296 a = 4; \\ to force a(1)=1 n = 1; while (w < #wanted, a = other(a); if (a <= #wanted, wanted[a] = n; while (w <= #wanted && wanted[w]>0, print (w " " wanted[w]); w++)); n++) quit