最終的なリストを印刷するにはprintステートメントを置くことができますが、この関数を改善する方法はありますか?私は、関数を書いたが、その相対的な品質素数を生成するループ内のPython Printステートメント
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
もっと正確に:除数を探すときは、テストする数字の_root_で止めることができます。数字の半分ではありません。なぜあなたは私の答えではなく、元の質問ではなく、btwでコメントしていますか? :) –
彼はプリントについて尋ねていました。実装についてではなく、私はそれをanswerdとして投稿したくありませんでした。そして、平方根の良い呼び出し。実装と結果:https://gist.github.com/1347474 – rplnt