s = 0 unseen = 1 seen(v) = bit test(s, v) see(v) = s = bit or(s, 2^v); while (seen(unseen), unseen++) A352724(n) = { my (r=[], o=0); while (n, my (v=valuation(n+n%2, 2)); if (n%2, r=concat(r, (2^v-1)*2^o)); o+=v; n\=2^v); r } compute(n) = { my (r=A352724(n)); for (v=unseen, oo, if (!seen(v) && #setintersect(r, A352724(v))==1, see(v); return (v); ); ); } for (n=1, 2^13, print (n " " compute(n))) quit