2016-09-19 5 views
0

この質問は何度も尋ねられましたが、私は最速のアルゴリズムを探していません。私はコードが間違っているので、私が間違っていることを知りたいだけです。Python - 素数であることを確認

import math 

def is_prime(number): 
    for i in range (2, 1+ int(math.sqrt(number))): 
     if number % i == 0: 
      return 0 
     else: 
      return 1 

choice = int(input("Check if it's prime: ")) 
if is_prime(choice): 
    print ("{} is a prime number".format(choice)) 
else: 
    print ("{} is not a prime number".format(choice)) 

私がこのプログラムをほとんどの数値に対してテストすると、正しい応答が返されますが、正方形の数値を調べると、それは素数であると言われます。だから私が間違ってやっていることは何ですか?

+0

と私は私がしても、ユーザーの入力をチェックしていなかっただけで幸せなパスをした知っているが、してみましょう:

あなたはそれが素数でないことを知っているときだけではなくすぐに戻り、他続けますこれをスキップして、常に 'integer> = 2'と入力すると仮定します。 – narn

答えて

4

ループの最初の繰り返しですぐに戻ります...常に。はいああ

def is_prime(number): 
    for i in range (2, 1+ int(math.sqrt(number))): 
     if number % i == 0: 
      return 0 
    return 1 
+0

ああ、今私はそれを見ます。あなたの時間をありがとう – narn

+0

ようこそ。 – trincot

関連する問題