s = 0 unseen = 1 seen(v) = bit test(s, v) see(v) = s = bit or(s, 2^v); while (seen(unseen), unseen++) zeros(n) = my (b=binary(n)); #b-vecsum(b) ones(n) = hamming weight(n) other(n) = { for (k=unseen, oo, if (!seen(k) && 1+zeros(k)==ones(n), see(k); return (k); ); ); } { for (n=1, 2^14-1, v = other(n); print (n " " v); ); } quit