我已经为range(3-2000)编写了一个简单的素数列表生成器。出于某种原因,代码打印出一堆副本,我不知道为什么。这是我的素数发生器:
import math
def printprimes():
count = 3
Lessthan2000 = True
while Lessthan2000 == True:
for x in range(2, int(math.sqrt(count)) + 1):
if count % x == 0:
break
else:
print count
if count >= 2000:
Lessthan2000 = False
count += 1
生成的打印输出包括如下拉伸:
1993
1993
1993
1993
1995
1997
1997
1997
1997
1997
1997
这是怎么回事?提前谢谢!你知道吗
else
子句应该属于for
,而不是if
也就是说
print count
如果for
结束时没有break
。你知道吗使用更好的名称、适当的迭代和docstring,很容易确定为什么会有重复项,因为没有重复项。你知道吗
相关问题 更多 >
编程相关推荐