问题是:
145是一个奇特的数字,因为1!+ 4!+ 5!= 1 + 24 + 120 = 145。
找出所有等于其各位数字的阶乘之和的数字的总和。
注意:由于1!= 1和2!= 2不是和,因此它们不包括在内。
我定义了一个函数来找阶乘。 然后我定义了一个函数来检查一个数字是否等于其各位数字的阶乘之和。 最后,我检查从3到200000的数字。如果一个数字符合条件,我就把它放进一个列表里。 最后,我对列表求和并打印出来。
这段代码只给我145作为答案。我不知道我做错了什么,有人可以帮忙吗?
我不是要发布Euler问题的解决方案。
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作为答案。我不知道我做错了什么,有人可以帮忙吗?
我不是要发布Euler问题的解决方案。