{ for (n=1, #a = vector(10 000), if (n==1, a[n] = 1, \\ mask of positions visited = to visit = 2^(n-1); while (to visit, p = valuation(to visit, 2); to visit -= 2^p; q = p + a[p]; if (q < n && !bittest(visited, q), to visit += 2^q; visited += 2^q; ); q = p - a[p]; if (q > 0 && !bittest(visited, q), to visit += 2^q; visited += 2^q; ); ); a[n] = hammingweight(visited); ); print (n " " a[n]); ); } quit