问题描述
我为此编写了这段代码,但它也将 9 作为质数返回。 当我将 9 作为输入时,我的输出低于输出。 输入一个数字:9 它是一个质数 不是质数
num = int(input("enter a number:"))
for i in range(2,num):
if num % i == 0:
print("not a prime number")
else:
print("it is a prime number")
但这表明 9 也是素数
解决方法
您可以在 if 条件中只 break
循环,并将 else 部分拉出循环,它会按照您的要求运行。
在循环内部,如果这个数是可整除的,则说明它不是素数,循环立即中断,但如果一直到else
部分的for循环,则说明该数是素数;这个 else 部分只有在循环没有被手动破坏时才会执行。
num = int(input("enter a number:"))
for i in range(2,num):
if num % i == 0:
print("not a prime number")
break
else:
print("it is a prime number")
PS:您甚至不需要检查到 n
,您可以检查到 √n,更多信息请访问 Wikipedia Primality test