编写一个 Python 函数程序,获取用户输入的正整数 n,统计从 0-n 之间的最大的 10 个素数列表,以从小到大排序
时间: 2024-02-09 15:10:04 浏览: 73
Python使用列表完成程序的编写:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到m报数),凡是报到m的人退出圈子,问最后留下的是原来第几号的人。
5星 · 资源好评率100%
好的,以下是代码实现:
```python
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
def prime_list(n):
"""获取0-n之间的素数列表"""
primes = []
for i in range(n+1):
if is_prime(i):
primes.append(i)
return primes
def top_10_primes(n):
"""返回最大的10个素数列表"""
primes = prime_list(n)
if len(primes) <= 10:
return sorted(primes)
else:
return sorted(primes)[-10:]
n = int(input("请输入正整数n:"))
print(top_10_primes(n))
```
解释一下代码实现:
- `is_prime` 函数用于判断一个数是否为素数,如果是素数就返回 `True`,否则返回 `False`。
- `prime_list` 函数用于获取 0-n 之间的素数列表,遍历 0-n 之间的所有数,对每个数调用 `is_prime` 函数,如果是素数就添加到列表中。
- `top_10_primes` 函数用于返回最大的10个素数列表。首先调用 `prime_list` 函数获取 0-n 之间的素数列表,如果列表长度不足10个,就直接返回排序后的素数列表。如果素数列表长度超过10个,就取出最大的10个素数,再排序后返回。
最后,获取用户输入的正整数 n,调用 `top_10_primes` 函数获取最大的10个素数列表,并打印输出。
阅读全文