习题解析之:最大素数
【问题描述】
用户输入一个正整数 N,计算并输出不大于 N 的最大素数。
输入格式
输入一个正整数N (N > 1)
输出格式
满足条件的素数
输入输出示例
输入:
100
输出:
97
【编程思路】
判断一个整数 m 是否为素数的方法是:小于 2 的整数肯定不是素数(最小的素数是 2)。对于大于或等于 2 的整数,用2~sqrt(m)中的每一个整数 i 去除 m ,若某一个 i 能被 m 整除,则 m 不是素数;否则,m 是素数。该操作可定义为一个函数,如下:
def isprime(m):
if m < 2:
return False
for i in range(2,int(m ** 0.5) + 1):
if m % i == 0:
return False
return True
要找出不大于 N 的最大素数,从 N 开始进行判断,若 N 是素数,则找到了;若 N 不是素数,再看 N - 1 是否为素数。用循环处理即可。
编写的源程序如下:

浙公网安备 33010602011771号