寻找小于给定整数的最大质数

问题描述:

对于给定的整数 n(2 < n < 10000),求比 n 小的质数中最大的一个。

输入描述:

一个整数 n。

输出描述:

一个整数,即题目要求的解。

用例输入 1:

100

用例输出 1:

97

解题思路:

  1. 判断质数: 从 2 开始依次判断是否能整除该数,如果能整除则不是质数,如果不能整除则是质数。
  2. 寻找最大质数: 从给定的 n 开始,依次判断 n-1,n-2,...,2 是否为质数,找到第一个质数即为题目所求的解。

算法步骤:

  1. 读取输入的整数 n。
  2. 从 n-1 开始依次判断是否为质数,直到找到第一个质数为止。
  3. 输出找到的质数。

时间复杂度分析:

对于每个 n,最坏情况下需要判断 n-2 个数是否为质数,所以时间复杂度为 O(n)。

空间复杂度分析:

只需要使用常量级别的额外空间,所以空间复杂度为 O(1)。

完整代码如下:

def is_prime(num):
    if num < 2:
        return False
    for i in range(2, int(num**0.5) + 1):
        if num % i == 0:
            return False
    return True

n = int(input())
while not is_prime(n):
    n -= 1
print(n)
寻找小于给定整数的最大质数 - C/C++ 代码实现

原文地址: https://www.cveoy.top/t/topic/qj6H 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录