Проект Эйлера

Проект Эйлера. Задача 30 «Пятые степени цифр»

Условие:

Удивительно, но существует только три числа, которые могут быть записаны в виде суммы четвертых степеней их цифр:

1634 = 14 + 64 + 34 + 44
8208 = 84 + 24 + 04 + 84
9474 = 94 + 44 + 74 + 44

1 = 14 не считается, так как это — не сумма.

Сумма этих чисел равна 1634 + 8208 + 9474 = 19316.

Найдите сумму всех чисел, которые могут быть записаны в виде суммы пятых степеней их цифр.

Решение:

import sys
if sys.version_info.major == 2:
 range = xrange


def compute():
 # Исключаем 1 = 1^5 
 # Если число имеет как минимум n >= 7 цифр, тогда даже если цифр 9, n * 9^5 все равно меньше чем число(которое минимум 10^n).
 ans = sum(i for i in range(2, 1000000) if i == fifth_power_digit_sum(i))
 return str(ans)


def fifth_power_digit_sum(n):
 return sum(int(c)**5 for c in str(n))


if __name__ == "__main__":
 print(compute())

Ruslan

Recent Posts

7 наилучших библиотек визуализации Python на 2024 год

Python предлагает набор библиотек, удовлетворяющих различные потребности в визуализации, будь то академические исследования, бизнес-аналитика или…

4 дня ago

Как преобразовать строку в байты в Python

В Python для представления данных в двоичной форме можно использовать байты. Из этой статьи вы…

2 недели ago

Что такое Werkzeug?

В этой статье рассказывается о том, что такое Werkzeug и как Flask использует его для…

2 недели ago

Как прибавить дни, месяцы и годы к дате в Python

При работе с датами часто возникает необходимость прибавлять к дате или вычитать из нее различные…

3 недели ago

Социальная аутентификация в приложении на Flask

В этом руководстве мы рассмотрим, как добавить социальную аутентификацию с помощью GitHub и Google в…

1 месяц ago

Проверка типов в Python

В этой статье мы рассмотрим, что такое подсказки типов и чем они могут быть полезны.…

1 месяц ago