Проблема в следующем:Project Euler 34 Помощь [Python]
145 Любопытный номер, как 1! + 4! + 5! = 1 + 24 + 120 = 145.
Найдите сумму всех чисел, которые равны сумме факториала их цифр.
Примечание: как 1! = 1 и 2! = 2 не являются суммами, которые они не включены.
# Project Euler Problem 34
def factorial(num):
"""Factorial"""
product = num
for i in range(2, num):
product *= i
return product
def check_sum(number):
list_digits = list(str(number))
check_sum = 0
for digit in list_digits:
check_sum += factorial(int(digit))
if check_sum == number:
return True
def find_final_sum():
"""Find the sum of all the numbers."""
final_list = []
final_sum = 0
counter = 3
while counter < 200000:
if check_sum(counter):
final_list.append(counter)
counter += 1
else:
counter += 1
for j in final_list:
final_sum += j
print(final_sum)
find_final_sum()
Я определил функцию для поиска факториалов. Затем я определил функцию, чтобы проверить, равна ли число суммам факториалов его цифр. Наконец, я проверяю числа от 3 до 200000. Если число работает, я помещаю его в список. В конце я подведу список и распечатаю его.
Этот код дает мне только 145 ответов. Я не вижу, что я делаю неправильно, может ли кто-нибудь помочь?
Я не пытаюсь опубликовать решение проблемы Эйлера.
У вас есть переменная и функция с тем же именем (final_sum) –
Я изменю это. – RandomCoder
Есть конечное количество любопытных чисел. См. [Фактор: Верхняя граница] (https://en.wikipedia.org/wiki/Factorion#Upper_bound) –