【发布时间】:2013-03-14 00:29:30
【问题描述】:
我正在尝试计算 200 万以下的所有质数的总和,由于我已经编写了一个函数来查找小于给定数字的质数,所以我只是编写了一个新函数来调用旧函数并将该列表中的项目相加。
但它似乎需要永远。我怎样才能加快这段代码的速度?
def find_primes(n):
"Find the prime numbers below n"
primes=[];
for i in range(2,n):
for fac in range (2,i):
if i!=fac and i%fac == 0:
break
else:
primes.append(i)
return primes
def add_primes(m):
"Sum all the prime numbers below m"
newlist=find_primes(m);
t=sum(newlist);
return t
PS:我是一个 Python 新手,所以如果你能很好地解释我的错误,我会很高兴。提前致谢。
【问题讨论】:
-
让您的代码更智能地工作?
-
顺便说一句,条件
i != fac总是为真,因为range不会产生“停止”参数,因此每个循环都在进行无用的比较(即使它应该很快)。
标签: python