我可以在哪裏放置打印語句來打印最終列表,但仍然保留返回值,並且有任何方法可以改進此功能。我寫了函數,但不確定其相對質量Python循環中打印語句,生成素數
def buildPrimeList():
primeList = [1, 2]
possiblePrime = 3
print "To display all prime values less than or equal a number..."
x = raw_input("Enter a number higher then 3 ")
while (possiblePrime <= x):
divisor = 2
isPrime = True
while (divisor < possiblePrime and isPrime):
if (possiblePrime % divisor == 0):
isPrime = False
divisor = divisor + 1
if (isPrime):
primeList.append(possiblePrime)
possiblePrime = possiblePrime + 2
return primeList
buildPrimeList()
寫起來更容易,可能只是檢查一個數字是否可以被任何較低的已經找到的素數整除。如果不是,這是一個主要原因。 (例如:3不能被2整除 - >是素數,15可以被3整除,停止; 17不能被2,3,5,7,11,13 - >整除)。我們可能會忽略那些高於我們測試數量的一半,但我不確定這會對速度產生什麼影響。 – rplnt
更確切地說:在尋找除數時,我們可以停止在我們測試的數字的根部,而不是數字的一半。爲什麼你評論我的答案,而不是原來的問題,順便說一句? :) –
他問的是印刷品,而不是實施,所以我不想將它作爲答覆發佈。和平方根好的呼叫。實施和結果:https://gist.github.com/1347474 – rplnt