Double-base palindromes
2014-09-23
Problem 036: Double-base palindromes
The decimal number, 585 = 10010010012 (binary), is palindromic in both bases.
Find the sum of all numbers, less than one million, which are palindromic in base 10 and base 2.
(Please note that the palindromic number, in either base, may not include leading zeros.)
Solution:
v
0 v \< v *2\< >:.55+,\ v
>093194*+**>::>55+*10p:55+%10g+\55+/:#^_$::0>10p:2%10g+\2/:#^_$-!#^_$ v
|:-1 <
v < v \< v *2\< >:.55+,\v
>93194*+**>::55+/>55+*10p:55+%10g+\55+/:#^_$::0>10p:2%10g+\2/:#^_$-!#^_$ v
|:-1 <
>"= ",,>+\:#<_+.@
0 v \< v *2\< >:.55+,\ v
>093194*+**>::>55+*10p:55+%10g+\55+/:#^_$::0>10p:2%10g+\2/:#^_$-!#^_$ v
|:-1 <
v < v \< v *2\< >:.55+,\v
>93194*+**>::55+/>55+*10p:55+%10g+\55+/:#^_$::0>10p:2%10g+\2/:#^_$-!#^_$ v
|:-1 <
>"= ",,>+\:#<_+.@
Start
??
Pause
Reset
Output:
Stack: (0)
Explanation:
The trick here is that we only need to test 1998 numbers. Because there are only so much base10 palindromes:
- The numbers from
1
to999
mirrored result into to palindromes11
to999999
- The numbers from
1
to999
mirrored at the last digit result into to palindromes1
to99999
Then we only need to test these numbers whether they are also binary palindromes.
Interpreter steps: | 969 574 |
Execution time (BefunExec): | 172ms (5.64 MHz) |
Program size: | 78 x 8 (fully conform befunge-93) |
Solution: | 872187 |
Solved at: | 2014-09-23 |