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