a(n) = { my (z=0, f, e, v=0); for (k=2, oo, f=fibonacci(k); if (f>=n, while (n, if (n>=f, n-=f; z+=2^(k-2); k--; ); f=fibonacci(k--); ); z=if (z, 2^(e=valuation(z,2))*fromdigits(Vecrev(binary(z/=2^e)), 2), 0); while (z, z-=2^e=valuation(z,2); v+=fibonacci(2+e); ); return (v); ); ); } for (n=0, 10946, print (n " " a(n))) quit