我无法编写程序,找到所有素数到第n个数字并打印出来。到目前为止我所拥有的,如果有人可以帮助并解释我做错了什么,我们将不胜感激:
def isPrime (n):
primeList = [2]
for i in range (3, n):
if n%2 == 0 or n%3 == 0:
break
else:
primeList.append(i)
break
return (primeList)
答案 0 :(得分:2)
您必须检查您的号码是否可以对您添加的所有素数进行整除,而不是检查它是否可以被2和3整除。
def isPrime (n):
primeList = [2]
for i in range (3, n):
isPrime = True
for prime in primeList:
if i % prime == 0:
isPrime = False
break
if isPrime:
primeList.append(i)
return primeList
答案 1 :(得分:1)
是的,你需要一个足够的方法来确定一个数字是否为素数。就目前而言,您只检查数字是否可以被2和3整除,而不是5,或7或更高。您可以通过循环显示小于当前数字的数字来检查:
for i in range(3, n):
for j in range(2, i):
if i % j == 0:
break
primeList.append(i) # only runs if loop not broken
return primeList
如果你想要
,我会留给你优化它