a(n) = { my (b = Vecrev(binary(n)), c = vector(#b)); for (i = 1, #b, forstep (k = i, #b, i, c[i] += b[k]; ); ); fromdigits(Vecrev(c) % 2, 2); } { b = vector(2^13-1); for (n = 1, #b, b[a(n)] = n; ); print ("0 0"); for (n = 1, #b, print (n " " b[n]); ); } quit