2016-08-13 7 views
-4

以下のコードは、素数では「素数ではない」と素数でない数字では「素数」を表示し続けます。私は間違って何をしていますか?数字が素数であるかどうかを確認する

+1

なぜこのコードは正確に数値が素数であるかどうかを判断すると思いますか? – michaelrccurtis

+0

@michaelrccurtisよく、私はifステートメントの中でプライムを示す条件を表現しようとしました。したがって、_quuN_が_quuM_で除算されたときにmodの値が0の場合、素数は1とそれ自身で均等に割り切れるため、素数ではありません。 –

答えて

0
quuN = int(input("ENTER NUMBER : ")) 

quuM = 2 

if (quuN <= 0) : 

    print("ENTER NON-NEGATIVE NUMBER PLEASE") 


elif (quuN % quuM == 0) : 

    print(" IS PRIME ") 

else : 

    print("IS NOT PRIME ") 

ロジックは素数(またはプライム)

誤っている1及び自身以外に正の約数を持たない1より大きい自然数です。素数ではない1より大きい自然数を合成数といいます。数が偶数か奇数である場合

def is_prime(n): 
    for i in range(3, n): 
     if n % i == 0: 
      return False 
    return True 
+1

s_prime(4)はTrueとして表示されますが、4は素数ではありません。 forループは2から始まる必要があります。 – warun26

0

上記コード下

単純Pythonコードがチェックされます。例えば17のような素数を入力すると、コードは17が0以下であるかどうかをチェックします。次に17%2をチェックして1になり、0ではないことをチェックします。したがって、elseブロックが実行され、 は非公開です。

偶数を入力すると、IS PRIMEが印刷されます。

このコードは、素数をチェックします。私はあなたのpythonと初心者と仮定

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

入力された1つの数値が素数であるかどうかを知る必要がある場合は、ifループをネストするforループが必要なのはなぜですか。 –

+0

素数(または素数)は1以上の自然数であり、1およびそれ自身以外の正の除数はありません。 forループは、2の自然数からnの平方根まで、これらの数のいずれかが実際にnを割り切れるかどうかをチェックします。 [this](http://stackoverflow.com/questions/5811151/why-do-we-check-upto-the-square-root-of-a-prime-number-to-determine-if-it-is)を確認してください。 -pri)なぜ平方根を使うのか? * if *条件は、このチェックを容易にします。 %演算は、nとiを分けることのリマインダーが0であるかどうかをチェックします。0であれば、nを割り、nは素数ではありません。 – warun26

0

ので、あなたがそうするとき、正しくない、あなたは慎重に最初primes numbersの定義を読んでください、私はあなたのコード内の数字の素数をチェックするためのロジックを指摘してみましょう

import math 

def is_prime_naive(number): 
    if number == 2: 
     return True 
    if number % 2 == 0: 
     return False 

    i = 3 
    sqrt_number = math.sqrt(number) 

    while i <= sqrt_number: 
     if number % i == 0: 
      return False 
     i = i+2 

    return True 

for i in range(2,101): 
    print "{0} {1} prime".format(i,"is" if is_prime_naive(i) else "is not") 

、上記のコードは、数が素数であるかどうかをチェックするための最も簡単なだけでなく、最も遅いの方法の一つである点に注意してください。素数をチェックする方法を示します。この少し例を理解しよう。素数の概念に慣れ親しんだときは、素数を調べる最速の方法を調べるべきです。いくつかの例は、フェルマーとミラーの素数素数検定です。だから、素数で幸運、あなたは確かにそれらを楽しむだろう;-)

関連する問題