is(n) = { if (n, my (b=binary(n), o=b); for (r=1, #b-1, b = concat(b[#b], b[1..#b-1]); if (b[1] && fromdigits(b, 2) < n, return (0); ); ); fordiv (#b, w, if (w<#b, if (#Set(digits(n, 2^w))==1, return (0); ); ); ); ); return (1); } for (n=0, 2^16-1, if (is(n), print (k++ " " n))) quit