{ T = vector(250, n, vector(n)); rem = #T * (#T+1) / 2; seen = [0]; v = 1; for (n = 1, oo, for (w = 1, oo, m = v%w; if (#seen < w, seen = concat(seen, vector(#seen)); ); if (!bittest(seen[w], m), if (w <= #T, T[w][1+m] = n; if (rem-- == 0, break (2); ); ); seen[w] += 2^m; v = w; break; ); ); ); a = vector(10 000); i = 0; for (n = 1, #T, for (k = 1, n, i++; if (T[n][k] <= #a, a[T[n][k]] = i; ); ); ); for (n = 1, #a, if (a[n]==0, break, print (n " " a[n]); ); ); } quit