2017-12-03 20 views
-1

私は、2つの範囲の間の素数を見つけるための簡単なロジックを持っています。しかし、簡単に始めるには、素数であれば数値入力を評価するコードを作成しようとしていますが、失敗しています。私はそれをある程度評価することができますが、最終的なプリントステートメントはオフです。前のループが完了して成功しなかった場合にのみ最終印刷が行われるようにするにはどうすればよいですか?素数を見つけるための基本的なロジック

n = int(input ('The number')) 
if n <2: 
    print (n,' is not a prime number') 
elif n==2: 
    print (n, ' is a prime number') 
else: 
    i = 2 
    while i<n: 
    if n%i ==0: 
     print (n, ' is not a prime number') 
     break 
    else: 
     i +=1 
print (n, " is a prime number")  
+0

([数は、Pythonで素数であるかどうかの確認]の可能性のある重複https://stackoverflow.com/questions/4114167/checking-if-a-number-is-a-prime-number- in-python) – quamrana

+0

私はあなたがNまでのすべての素数を見つけるためにこのアルゴリズムを調べるべきだと信じています:https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes –

答えて

0

この場合、while-else構造を使用できます。

(あなたのpython 2.7を使用している場合、またはhttps://docs.python.org/2/reference/compound_stmts.html#the-while-statementhttps://docs.python.org/3/reference/compound_stmts.html#the-while-statement

を参照してください

+0

vvvたくさんのPeterに感謝します。 (n、 'は素数ではない) t = True n <2の場合: print(n、'は素数ではありません) elif n == 2: プリント(N、 '素数である')他 : I = 2 iがn <ながらた:i == 0 場合のn%: プリント(N、 '素数ではありません' ) t = False 改行 else: i + = 1 else: print(n、 'は素数です) – Vish

0

さて、あなたはどこでも、ネット上でこの答えを見つけることができます。しかしここでは、素数を調べるためにここに単純関数を入れます。

def is_prime(num): 
    """ Returns if the given number is prime or not 
    """ 
    # 0 and 1 are not a prime numbers so return them as not a prime number 
    if num == 0 or num == 1: 
     return '{0} is Not a prime number'.format(num) 
    for i in range(2, num): 
     if num%i == 0: 
      return '{0} is Not a prime number'.format(num) 
    return '{0} Is a prime number'.format(num) 

n = int(input ('The number')) 
print(is_prime(n)) 
関連する問題