2016-12-21 7 views
-3

n番目の数字を見つけるためにPythonで次のコードセグメントを書きました。なぜそれが動作しないのか分かりません。あなたは私にヒントを与えてくれるだけで、完全な解決策ではなく、正確にどのビットがそれを台無しにしているのかを指摘してください。Pythonでn番目の素数を見つける

term = int(input("What prime do you want to find? ")) 
prime_list=[2] 

def prime_search(term): 
    x=3 
    while len(prime_list) <= term: 
     if all(x % y != 0 for y in range(2,x)): 
      prime_list.append(x) 
     x += 1 
    return prime_list[term-1] 

prime_search(term) 
+0

このコードが実際に動作し、その動作が期待通りのものとはどのように異なっているかをヒントまたは正確に指摘してください。 – ForceBru

+2

print prime_search(用語) –

+0

あなたのコードは最適ではありませんが、あなたが期待していることは何ですか、問題は何ですか? – Saksow

答えて

1

あなたの投稿はありませんprintあなたの機能は機能します。

term = int(input("What prime do you want to find? ")) 
prime_list=[2] 

def prime_search(term): 
    x=3 
    while len(prime_list) <= term: 
     if all(x % y != 0 for y in range(2,x)): 
      prime_list.append(x) 
     x += 1 
    return prime_list[term-1] 

print(prime_search(term)) 

出力:私はあなたが本当にこれを使用したい場合は、プライムふるいをルックアップするために助言しかし

What prime do you want to find? 5 
11 

+0

上記のコメントをいただき、ありがとうございました!なぜコードの 'x + = 1 'セクションをprime_list.appendで整列させるのではなくifステートメントで整列させる必要があるのか​​、私に助言できますか? – user11128

+0

すべての正の数をチェックしたいからです。もし素数が見つかった場合にのみインクリメントするだけであれば、xをインクリメントしないので、素数が最初に見つかったときに反復が止まります(i文は常にfalseと評価され、xは同じままです) –

+0

ああありがとうございました。私はseiveメソッドをチェックします。 – user11128

関連する問題