这是我的代码。
#Prime numbers between 0-100
for i in range(2,100):
flg=0
for j in range(2,int(i/2)):
if i%j==0:
flg=1
break
if flg!=1:
print(i)
输出是
2
3
4 <-
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
我不知道为什么会有这个 4。 如果我犯了一些笨拙的错误,请原谅我,因为我似乎无法弄清楚。
最佳答案
原因是范围不包含在内,即
>>> range(2,2)
[]
因此,当您访问 4 时,您不会检查除数。例如更改为 range(2,int(i/2)+1)
为了加快计算速度,您可以使用 math.sqrt 代替/2 操作,例如:
import math
然后
for j in range(2, int(math.sqrt(i)+1)):
关于python - 我用 Python 生成的素数列表中有一个 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20610157/