我最近开始尝试使用python解决项目Euler上的问题,并且在尝试计算素数并将它们附加到列表时遇到了这个道路颠簸。我写了下面的代码,但我很困惑,为什么它在运行时不输出任何内容。计算素数并追加到列表
import math
primes = []
def isPrime(i):
if number<=1:
return False
if number==2:
return True
if number%2==0:
return False
for i in range(3,int(sqrt(number))+1):
if number%i==0:
return False
return True
for i in range (1, 9999999):
if isPrime(i) == True:
primes.append(i)
else:
continue
print(primes)
好开始更改'def isPrime(i):'def'Prime(number):''和'我在范围内(3,int(sqrt(number)) 1):''到对于i在范围(3,INT(math.sqrt(数))+ 1):' – jacoblaw
这是计算质数的列表的非常低效的方式。直接用筛子生成素数会更好。 – AChampion
Mh ...它甚至运行吗? 'i'应该是'number','sqrt'应该是'当您使用Python中的for循环math.sqrt' –