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