用python代码实现:输入两个正整数m和n(m<n),利用生成器对象生成[m,n]上的所有素数组成的元组,并使用适当的函数求出其中的最大素数、最小素数和素数的个数。
时间: 2024-01-27 08:03:50 浏览: 91
好的,以下是代码实现:
```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]上的所有素数组成的元组"""
for i in range(m, n+1):
if is_prime(i):
yield i
def prime_stats(m, n):
"""求出最大素数、最小素数和素数的个数"""
prime_list = 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, n = 2, 20
max_prime, min_prime, count_prime = prime_stats(m, n)
print("在区间[{}, {}]上的素数有:{}".format(m, n, tuple(prime_tuple(m, n))))
print("最大素数为:{}".format(max_prime))
print("最小素数为:{}".format(min_prime))
print("区间[{}, {}]上素数的个数为:{}".format(m, n, count_prime))
```
输出结果:
```
在区间[2, 20]上的素数有:(2, 3, 5, 7, 11, 13, 17, 19)
最大素数为:19
最小素数为:2
区间[2, 20]上素数的个数为:8
```
以上代码中,`is_prime()`函数用于判断一个数是否是素数,`prime_tuple()`函数用于生成[m,n]上的所有素数组成的生成器对象,`prime_stats()`函数用于求出最大素数、最小素数和素数的个数。测试代码展示了如何调用这些函数并输出结果。注意,在输出素数元组时,需要使用`tuple()`函数将生成器对象转换为元组。
阅读全文