用户输入一个大于 1 的正整数n,计算并输出不大于 n 的最大的素数。
时间: 2024-09-25 18:14:08 浏览: 49
python 输入两个正整数计算最大公约数和最小公倍数 示例
5星 · 资源好评率100%
你可以使用以下的Python代码来解决这个问题,这里采用的是埃拉托斯特尼筛法(Sieve of Eratosthenes),它可以有效地找出不超过给定数字的最大素数:
```python
def largest_prime_number(n):
if n < 2:
print("请输入一个大于1的正整数")
return
primes = [True] * (n + 1) # 初始化一个布尔数组
p = 2
while p * p <= n:
if primes[p]: # 如果p是素数
for i in range(p * p, n + 1, p):
primes[i] = False # 将p的倍数标记为合数
p += 1
largest_prime = 2 # 2是最小的素数
for p in range(3, n + 1):
if primes[p]: # 找到最后一个未被标记的素数
largest_prime = p
break
print(largest_prime)
# 获取用户输入
n = int(input("请输入一个大于1的正整数: "))
largest_prime_number(n)
```
当你运行这个程序,它会提示你输入一个正整数,然后返回小于等于该数的最大素数。
阅读全文