用户输入一个正整数 N,计算并输出不大于 N 的最大素数。
时间: 2024-05-09 08:15:05 浏览: 134
可以使用试除法来判断一个数是否为素数。具体步骤如下:
1. 判断这个数是否小于 2,如果小于 2,那么它不是素数;
2. 如果这个数不是 2,并且它是偶数,那么它也不是素数;
3. 对于一个奇数 n,从 3 开始,依次判断 n 是否能被 3、5、7、9、11…… 整除,直到判断的数大于等于 $\sqrt{n}$ 为止。如果没有找到一个数能够整除 n,则 n 是素数。
根据上述步骤,可以编写如下代码:
```python
import math
def is_prime(n):
if n < 2:
return False
elif n == 2:
return True
elif n % 2 == 0:
return False
else:
for i in range(3, int(math.sqrt(n))+1, 2):
if n % i == 0:
return False
return True
def find_max_prime(n):
for i in range(n, 1, -1):
if is_prime(i):
return i
return 0
n = int(input("请输入一个正整数:"))
max_prime = find_max_prime(n)
if max_prime == 0:
print("不存在不大于 {} 的素数".format(n))
else:
print("不大于 {} 的最大素数是:{}".format(n, max_prime))
```
运行程序,输入一个正整数,即可得到不大于该数的最大素数。
阅读全文