s = 0 unseen = 1 seen(v) = bit test(s, v) see(v) = s = bit or(s, 2^v); while (seen(unseen), unseen++) other(pp) = { for (v=unseen, oo, if (!seen(v) && gcd(pp, v)==1, return (v); ); ); } { for (n=1, 10 000, see(v=if (n<=2, unseen, other(pp))); print (n " " v-n); [pp,p] = [p,v]; ); } quit