当前位置: 首页 > news >正文

习题解析之:最大素数

习题解析之:最大素数

【问题描述】
用户输入一个正整数 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 Falsefor i in range(2,int(m ** 0.5) + 1):if m % i == 0:return Falsereturn True

 

        要找出不大于 N 的最大素数,从 N 开始进行判断,若 N 是素数,则找到了;若 N 不是素数,再看 N - 1 是否为素数。用循环处理即可。
        编写的源程序如下

image