我必须在 python 中编写一个程序来检查 3 ,11 是素数而 9 不是

问题描述

我为此编写了这段代码,但它也将 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