fromzeck(n) = { my (v=0, j); while (n, n-=2^j=valuation(n,2); v+=fibonacci(2+j);); return (v); } { m = -1; for (n = 0, 12, if (n==0, zz = [0, 1], n==1, zz = concat([2*z | z <- [1]], [4*z + 1 | z <- [1]]), zz = concat([2*z | z <- zz], [4*z + 1 | z <- zz]); ); vv = vecsort(apply(fromzeck, zz)); apply (v -> print (m++ " " v), vv); ); } quit