寻找小于给定整数的最大质数 - C/C++ 代码实现
寻找小于给定整数的最大质数
问题描述:
对于给定的整数 n(2 < n < 10000),求比 n 小的质数中最大的一个。
输入描述:
一个整数 n。
输出描述:
一个整数,即题目要求的解。
用例输入 1:
100
用例输出 1:
97
解题思路:
- 判断质数: 从 2 开始依次判断是否能整除该数,如果能整除则不是质数,如果不能整除则是质数。
- 寻找最大质数: 从给定的 n 开始,依次判断 n-1,n-2,...,2 是否为质数,找到第一个质数即为题目所求的解。
算法步骤:
- 读取输入的整数 n。
- 从 n-1 开始依次判断是否为质数,直到找到第一个质数为止。
- 输出找到的质数。
时间复杂度分析:
对于每个 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)
原文地址: https://www.cveoy.top/t/topic/qj6H 著作权归作者所有。请勿转载和采集!