我有这两个共同作用的功能。第一个生成下一个质数。第二个将质数追加到质数列表中。当我基本上说I=next(n)=nextPrime(primeList)时,我觉得我在第二个函数中过度使用了变量。有更好的方法写这个吗?
def nextPrime(primeList):
checkNum = 3
while True:
for i in primeList:
if checkNum % i == 0:
break
if i > math.sqrt(checkNum):
yield checkNum
break
checkNum += 2
def primeNumbers(limit):
primeList = [2]
i = 0
n = nextPrime(primeList)
while i <= limit:
i = next(n)
primeList.append(i)
return primeList
primeList = primeNumbers(200000)
最佳答案
这样行吗?
def primeNumbers(limit):
primeList = [2]
for i in nextPrime(primeList):
if i > limit:
break
primeList.append(i)
return primeList