根据Project Euler的问题3,我有一个代码:“13195的主要因素是5,7,13和29. 600851475143中最大的素数因素是什么?”
我有一个我认为可行的代码,但第9行(for k in range(2,res[j]):
)不断返回错误:“IndexError:list index out of range”。当我在for循环中移动时,似乎我没有修改我的列表,所以我不确定是什么问题。
def find_primes(num):
res = []
print(num)
for i in range(2,num):
if num%i==0:
res.append(i)
for j in res:
for k in range(2,res[j]):
if res[j]%k==0:
res[j]=False
list(filter((False).__ne__, res))
m = max(res)
return(m)
有谁知道我哪里出错了?
谢谢!
答案 0 :(得分:2)
你可能打算这样做:
for j in range(len(res)):
for k in range(2,res[j]):
使用for j in res
会迭代res
元素。