我是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语句后面没有? 有人能解释一下吗
本质上,这个for循环检查从2到输入数字一半的所有数字。如果沿途的任何数字产生一个没有余数的完美除法(例如4%2=0),则它将中断。%运算符给出整数除法的余数(例如5%2=1)。因此对于素数,应该总是有一个余数,因为在指定的范围内不可能有完全除法。如果没有余数,则代码中断循环,并将该数字分类为非素数
相关问题 更多 >
编程相关推荐