tozeck(n) = { for (i=0, oo, if (n<=fibonacci(2+i), my (v=0, f); forstep (j=i, 0, -1, if (n>=f=fibonacci(2+j), n-=f; v+=2^j; ); if (n==0, return (v); ); ); ); ); } fromzeck(n) = { my (v=0, j); while (n, n-=2^j=valuation(n,2); v+=fibonacci(2+j); ); return (v); } todualzeck(n) = { my (s=0, v=0); for (i=0, oo, if (s>=n, forstep (j=i-1, 0, -1, if (s-fibonacci(2+j)>=n, s-=fibonacci(2+j); v-=2^j; ); ); return (v); ); s+=fibonacci(2+i); v+=2^i; ); } A(n, k) = fromzeck(bitor(todualzeck(n), todualzeck(k))) { m = -1; for (d = 0, 140, for (k = 0, d, print (m++ " " A(d-k, k)); ); ); }