contains(x,y) = { my (m=10^#digits(y)); while (x>=y, if (x%m==y, return (1), x\=10; ); ); return (0); } a(n) = { my (n2=n); for (x=1, oo, if (contains(n2*=2, n), return (x); ); ); } for (n=0, 10 000, print (n " " a(n))) quit