python 输入两个正整数m和n(m<n),利用生成器对象生成[m,n]上的所有素数组成的元组,并使用适当的函数求出其中的最大素数、最小素数和素数的个数。
时间: 2024-01-27 10:03:24 浏览: 80
蓝桥杯 python 组题目和解析.docx
好的,我可以帮你解决这个问题。以下是代码实现:
```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_tuple(m, n):
"""
生成[m,n]上的所有素数组成的元组
"""
return tuple(i for i in range(m, n+1) if is_prime(i))
def prime_statistic(m, n):
"""
统计[m,n]上的所有素数的最大值、最小值和个数
"""
prime_list = prime_tuple(m, n)
max_prime = max(prime_list)
min_prime = min(prime_list)
count_prime = len(prime_list)
return max_prime, min_prime, count_prime
m = int(input("请输入正整数 m:"))
n = int(input("请输入正整数 n(n>m):"))
max_prime, min_prime, count_prime = prime_statistic(m, n)
print("[{}, {}] 中的素数个数为 {},最大素数为 {},最小素数为 {}".format(m, n, count_prime, max_prime, min_prime))
```
代码中定义了三个函数:
- `is_prime()`:判断一个数是否为素数;
- `prime_tuple()`:生成[m,n]上的所有素数组成的元组;
- `prime_statistic()`:统计[m,n]上的所有素数的最大值、最小值和个数。
最后,我们可以通过调用`prime_statistic()`函数来得到最大素数、最小素数和素数的个数的结果。
阅读全文