【发布时间】:2016-03-17 14:41:06
【问题描述】:
我正在解决 Project Euler problem 34
我的代码如下:
import functools
limit = int(input())
factDict = { 0:1, 1:1, 2:2, 3:6, 4:24, 5:120, 6:720, 7:5040, 8:40320, 9:362880 }
for i in range(10, limit):
listNum = list(map(int, list(str(i))))
#print(listNum)
sumFact = functools.reduce(lambda x, y: factDict[x] + factDict[y], listNum)
if(sumFact%i == 0):
print(i)
它工作正常,直到 140,然后给出:
Traceback (most recent call last):
File "solution.py", line 10, in <module>
sumFact=functools.reduce(lambda x, y: factDict[x]+factDict[y], listNum)
File "solution.py", line 10, in <lambda>
sumFact=functools.reduce(lambda x, y: factDict[x]+factDict[y], listNum)
KeyError: 25
我也打印了列表,发现没有问题。
我哪里错了?
【问题讨论】:
标签: python python-3.x factorial keyerror