Python程序来检查一个数字是否为素数

2024-04-18 02:38:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手。我只是试着写一个basic程序(检查一个数字是否为素数)。我参考了一个在线网站上的代码,并试图自己编写一个

代码如下:

#PYTHON PROGRAM TO CHECK PRIME NUMBER
print("Enter a number :: ", end = " ")
num = int(input())

if num > 1:
    for i in range(2,int(num/2)):
        if(num%i) == 0:
            print(str(num) + " is not prime")
            break;
    else:
        print(str(num) + " is prime")

else:
    print(str(num) + " is neither prime nor composite.")

我所怀疑的是代码的运行。它运行时没有任何错误,并生成正确的输出

令人困惑的代码片段是:

for i in range(2,int(num/2)):
    if(num%i) == 0:
        print(str(num) + " is not prime")
        break;
else:
    print(str(num) + " is prime")

编辑: 为什么for循环后面有else而if语句后面没有? 有人能解释一下吗


Tags: 代码inforifisnotrangeelse
1条回答
网友
1楼 · 发布于 2024-04-18 02:38:22

本质上,这个for循环检查从2到输入数字一半的所有数字。如果沿途的任何数字产生一个没有余数的完美除法(例如4%2=0),则它将中断。%运算符给出整数除法的余数(例如5%2=1)。因此对于素数,应该总是有一个余数,因为在指定的范围内不可能有完全除法。如果没有余数,则代码中断循环,并将该数字分类为非素数

相关问题 更多 >