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) a = 4; \\ to force a(1)=1 for (n=1, 2 000, a = other(a); print (n " " a)) quit