Find the smallest positive base 10 integer, for each of (a) through (d), (but with a 3digit minimum), such that moving a digit is equivalent to changing the base from 10 to some other base which you must determine, according to one specific condition below:
(a) Moving a 6 from last digit to first changes from base 10 to a smaller base
(b) Moving a 3 from first digit to last changes from base 10 to a smaller base
(c) Moving a 2 from last digit to first changes from base 10 to a larger base
(d) Moving an 8 from first digit to last changes from base 10 to a larger base
Note: The new base may be different for each of (a) to (d)
(In reply to
re(5): computer exploration  c and d finally by Larry)
Ah, not a typo but a bug:
The two incompatible statements are highlighted:
for i=[ 200:299 2000:2999]
n=flip(char(string(i)));
nr=[n( end) n(1:end1)];
for b=11:36
if base2dec(nr,b)==i
disp([n ' ' nr ' ' char(string(b))])
end
end
end
The value of n is flipped lefttoright from i, so that i could be in ranges without step values, but the comparison is against the unflipped original. The correct code
for i=[ 200:299 2000:2999]
n=flip(char(string(i)));
nr=[n( end) n(1:end1)];
for b=11:36
if base2dec(nr,b)==str2double(n)
disp([n ' ' nr ' ' char(string(b))])
end
end
end
compares against the one from which the moved 2 came.
It now, finally(I hope), finds
782 278 18
882 288 19
5272 2527 13
the first of which is that 782 in decimal, translated to base 18 is written as 278.

Posted by Charlie
on 20220420 14:46:17 