gpt4 book ai didi

python - 素数 : Why is this code giving me some composite numbers?

转载 作者:太空宇宙 更新时间:2023-11-04 07:20:16 25 4
gpt4 key购买 nike

我似乎得到了所有素数,但也出现了一些合数。为什么?

p=[2,]
while len(p)<35:
next = p[-1]+1
for i in range(len(p)):
if next%p[i]==0:
next+=1
i=0
p.append(next)
print p

这是我得到的输出:

[2, 3, 5, 7, 11, 13, 16, 17, 19, 23, 27, 29, 31, 35, 37, 41, 43, 47, 50, 53, 59, 61, 65, 67, 71, 73, 77, 79, 83, 87, 89, 95, 97, 101, 103]

最佳答案

因为当您在 for 循环中更新 next 时,您没有从素数列表的开头扫描以检查新的 next 是否可整除。您可以尝试以下方法。

p=[2,]
number=3
while len(p)<35:
if all(number%i!=0 for i in p):
p.append(number)
number += 1
print p

关于python - 素数 : Why is this code giving me some composite numbers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21272326/

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