数字がプライムであるかどうかをチェックする効率的な方法はたくさんあります。ここで
、ご質問が特定
What is the best algorithm for checking if a number is prime?、エラーがたくさんあります。
1)コードは、あなたの範囲は0から始まるのでゼロDivisonのエラーが原因で失敗したが、試す
for in range(2, num)
NUM%1は常にゼロ
2であるため)if(num <= 1):
べき
num = int(input("Enter any number : "))
def check_prime(num):
if(num <= 1):
print("Please enter a number more than 1")
return
# check if number is 2 or 3 as they are prime numbers
if (num == 2 or num == 3):
print("Number is prime")
return
# checking for number divisible by 2, 3 or 5 covers large set of numbers
if (num % 2 == 0 or num % 3 == 0):
print("Number is not a prime number")
return
# if none of the above case is satisfied then iterate to half of the number
# as number more than half is never a factorial of the number
for i in range(7, int(num/2)):
if(num % i == 0):
print("The number is not a prime number")
return
print("Number is prime")
check_prime(num)
はしかし、利用できる効率的なソリューションがあります:ループはここにあなたのスクリプトの簡単な修正版で
をループ不要避けるために、対象外となります。
実際の質問は何ですか?あなたが一般的な正しい結果を得られない理由(コードで素数が正しくチェックされない)、または1より小さい数字のエラーがなぜ発生するのだろうと思っていますか? –
私は間違っているとは思わない...あなたはあなたが得るエラーであなたの投稿を編集できますか? – Dadep