up(n, b) = my(z4=0, carry=0, p4=1, d); \ while (n>0, \ d = carry + (n % b); \ if (d>1, \ z4=0; carry=1, \ z4=z4+d*p4; carry=0 \ ); \ n=n\b; \ p4=p4*b \ ); \ if (carry>0, \ z4=z4+p4 \ ); \ return (z4) { n=0; i=0; while (i<10 000, n3 = up(n,3); n4 = up(n,4); if (n3==n4, i=i+1; print(i" "n3); n=n3+1, n=max(n3,n4) ) ) } quit