gpt4 book ai didi

python - 如何让这段代码在 python 上运行得更快?

转载 作者:行者123 更新时间:2023-11-28 21:51:11 26 4
gpt4 key购买 nike

我在 python 上写了这段代码来解决项目 Euler 问题 #10,但我已经等了 15 分钟(运行这段代码)但它仍然没有结束。

请帮助我改进或优化此代码。

这是片段:

def prime (n):
f = 1 #flag
for i in range(2,n):
if n % i == 0:
f = 0
return f

s = 0 # Sum
for i in range(2,2000000):
if prime(i) == 1:
s = i + s
print s

最佳答案

import math

def prime (n):
for i in xrange(2, int(math.sqrt(n))+1):
if n % i == 0:
return False
return True

s = 2 # Sum
for i in xrange(3,2000000, 2):
if prime(i):
s += i
print s

对我来说它运行不到 10 秒。

首先,一旦发现数字是合数,您想从 prime 返回。

其次,您不想检查偶数。使用 xrange(3,2000000, 2)

跳过它们

第三,prime中不需要检查从2n的所有数字,因为a*b = b *一个

由于您使用的是 Python 2,我已将 range 替换为 xrange,这样效率会更高一些。

关于python - 如何让这段代码在 python 上运行得更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30700339/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com