A003188(n) = bitxor(n, n>>1) A006068(n) = { my( s=1, ns ); while ( 1, ns = n >> s; if ( 0==ns, break() ); n = bitxor(n, ns); s <<= 1; ); return ( n ); } /* Joerg Arndt, Jul 19 2012 */ T(n,k) = A006068(bitand(A003188(n), A003188(k))) m=-1; for (d=0, 140, for (k=0, d, print (m++ " " T(d-k, k)))) quit