我想写一个程序,显示2到200之间的质数。在
这是我写的程序。在
liste = [ ]
liste.append(2)
liste = [2]
for primeCandidate in range (2,10):
isPrime = True
for divisor in range (2,primeCandidate):
if primeCandidate % divisor == 0:
isPrime = False
break
if isPrime:
liste.append(primeCandidate)
print(liste)
但我总是得到错误的输出。我找不到我的错误。你能帮我找出我的错误吗?在
有两件事突然出现:
(1)您不需要在开始时将liste设置为[2];primeCandidate循环包含2,因此如果这样做,您将得到两次2。在
(2)你的“如果我是”太深了。只有在检查了候选除数后,才能信任isPrime。(好吧,你实际上检查得比你需要的多,但这只是一个效率问题,而不是一个bug。)具体来说:
注意:在python3.x中,
^{pr2}$range()
返回一个range
对象,而不是list
,因此您必须更改到
以避免产生{}。在
相关问题 更多 >
编程相关推荐