题目
编写函数,判断一个整数是否为素数,并编写主程序调用该函数
思路
- 要想判断素数,首先要知道什么是素数。素数,又称质数,是指大于1的整数,除了1和自身外,没有其他正因数的数。换句话说,素数只能被1和自身整除,不能被其他大于1且小于自身的整数整除。
- 知道什么是素数以后,结合数学的知识,只需要遍历2 到 该整数平方根+1 之间的整数,都不能被该整数整除,那么这个整数就是质数。
代码
from math import sqrt
def IsPrime():
while True: #循环直到用户输入整数
try:
num = int(input("Please enter an integer greater than zero:")) #提示用户输入
except ValueError as err: #捕捉到异常
print("Input Error!") #提示用户输入错误
else: #输入是整数
if num > 0: #判断是否大于0
if num == 1: #输入为1
print("%d is not prime." %num) #打印判断结果
return #返回
for i in range(2,int(sqrt(num)+1)): #遍历所有可能的被整除的数
if num % i == 0: #可以被整除
print("%d is not prime." %num) #打印判断结果
return #返回
print("%d is prime." %num) #排除非质数判断,打印是质数的结果
return #返回
if __name__ == "__main__":
IsPrime()