私はいくつかのチュートリアルを使ってPythonを学習しようとしています。私は独自の演習を作成することに決めました。私は、素数の印刷だけでなく、そこにいくつの素数が1〜1000であるかを示すスクリプトを作成したかったのです。私はこれはなぜ動作しないのですか(Python)?
知らない:私は、アプリケーションを起動したときに
numberlist = []
a = 1
prime = True
while a < 1000:
a = a + 1
for divisor in range(2,a):
if a/divisor==int(a/divisor):
prime=False
if prime == True:
print a
numberlist.append(a)
print "Number of prime numbers between 1 and 1000:", len(numberlist)
しかし、それは「0 1〜1000の間の素数の数」
を返します。これは私がこれまで持っているものです私が間違ってやったこと。誰かが私が犯したことを明確にしてもらえますか?
ありがとうございました。
編集:だから今のコードは次のようになりますが、同じ問題が発生している:Aと除数の両方がint型であるため、
numberlist = []
a = 1
for a in xrange(1, 1000):
for divisor in range(2,a):
if a % divisor == 0:
prime=False
else:
prime=True
if prime == True:
print a
numberlist.append(a)
print "Number of prime numbers between 1 and 1000:", len(numberlist)
はちょうどあなたが知っているように存在していることを知って、さらに仲良くときならば、あなたはかなり(numberlist'で除数のために '行うことで、このアルゴリズムを改善することができ、あなたを助けるかもしれません'a 'を2で始めるか、' numberlist [1:] 'の除数のために' 'numberlist = [1]'で始めるだけです)。 –
prime = Falseの後にbreakステートメントを付けます。 – utdemir