我最近開始嘗試使用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' –