查找素数的基本逻辑

时间:2017-12-03 18:32:54

标签: python

我的目标是有一个简单的逻辑来找到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")    

2 个答案:

答案 0 :(得分:0)

在这种情况下,您可以使用while-else构造。

请参阅https://docs.python.org/3/reference/compound_stmts.html#the-while-statement

(如果您使用的是python 2.7,则为https://docs.python.org/2/reference/compound_stmts.html#the-while-statement

答案 1 :(得分: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))