I am a teacher!

导航

习题解析之:最大素数

【问题描述】
用户输入一个正整数 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 是否为素数。用循环处理即可。
        编写的源程序如下

image

posted on 2025-11-12 16:32  aTeacher  阅读(0)  评论(0)    收藏  举报