s = 0 unseen = 1 seen(v) = bit test(s, v) see(v) = s = bit or(s, 2^v); while (seen(unseen), unseen++) \\ Golomb's sequence g = vector(11 000) g[1] = 1 g[2] = 2 u = 0 for (r=1, oo, for (i=1, g[r], g[u++] = r; if (u==#g, break (2)))) compute(n) = { for (v=unseen, oo, if (!seen(v) && g[n]!=g[v], see(v); return (v); ); ); } for (n=1, 10 000, print (n " " compute(n))) quit