gpt4 book ai didi

python - 我如何改进欧拉问题 7 的代码

转载 作者:行者123 更新时间:2023-12-01 07:53:14 26 4
gpt4 key购买 nike

我已经开始学习Python,在做了一些基础知识之后,我开始做欧拉问题。我能做 7 个,但编译需要很长时间。有人可以帮助我吗?

这是我写的唯一代码

def prime(n):
count = 0
if n <= 1:
print("Number is neither prime nor composite")
if n == 2:
print("Number is prime")
if n > 2:
for i in range(2, n//2 + 1):
if n % i == 0:
count += 1
else:
count += 0
if count == 0:
return True
else:
return False


b = 10001
a = []
i = 2
while len(a) < b:
if prime(i):
a.append(i)
i += 1
else:
i += 1
print(a[-1])

最佳答案

没有必要找出一个数的所有因数。一旦找到一个因子,这个数字显然不是素数,你可以立即返回False

编辑:
正如 Federico Domeniconi 在评论中提到的,也没有必要迭代最多 n 的一半。迭代到其平方根就足够了:

if n > 2:
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False

# No factors found, n is a prime:
return True

关于python - 我如何改进欧拉问题 7 的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56094065/

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