Палиндромные числа в двух основаниях, Проект Эйлера №36Python

Программы на Python
Ответить
Anonymous
 Палиндромные числа в двух основаниях, Проект Эйлера №36

Сообщение Anonymous »

Вот мое решение задачи 36 проекта Эйлера, которое гласит:


Десятичное число 585 = 1001001001₂ (двоичное) является палиндромным по обоим основаниям.

Найдите сумму всех чисел меньше одного миллиона, которые являются палиндромными по основанию 10 и основание 2.

(Обратите внимание, что палиндромное число в любом основании не может включать ведущие нули.)


Мой результат почему-то неправильный. Может ли кто-нибудь помочь?

Код: Выделить всё

def findnum(n):
a = 0
for i in range(0, n + 1):
temp = '{0:08b}'.format(i)
if str(i) == str(i)[::-1] and str(temp) == str(temp)[::-1]:
a += i
return a

print findnum(1000000)
Результат, который я получил, — 872096, но правильный ответ кажется 872187. Но разница этих двух чисел, 91, не является палиндромом. Что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/283 ... t-euler-36
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»