b = vector(20 100) \\ inverse of a x = vector(#b, i, i) \\ product of ancestors of n uo = 1 \\ least unseen odd other(n) = \ my (o=n); \ while (b[o]>1, o=b[o]); \ my (v=uo); \ while (b[v] || gcd(x[o], v)>1, v+=2); \ return (v) { for (n=1, 10 000, a = other(n); b[a] = n; while (b[uo], uo += 2); o = a; while (b[o]>1, o = b[o]); x[o] *= a; print (n " " a); ) } quit