输入两个正整数m和n(m<n),利用生成器对象生成[m,n]上的所有素数组成的元组,并使用适当的函数求出其中的最大素数、最小素数和素数的个数
时间: 2024-01-24 17:05:35 浏览: 71
好的,我明白了。以下是代码实现:
```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_generator(m, n):
"""生成[m,n]上的所有素数"""
for num in range(m, n + 1):
if is_prime(num):
yield num
def prime_tuple(m, n):
"""生成[m,n]上的所有素数组成的元组"""
prime_list = list(prime_generator(m, n))
return tuple(prime_list)
def prime_info(m, n):
"""求最大素数、最小素数和素数的个数"""
prime_list = list(prime_generator(m, n))
max_prime = max(prime_list)
min_prime = min(prime_list)
count = len(prime_list)
return max_prime, min_prime, count
# 测试代码
m, n = 2, 20
prime_tuple = prime_tuple(m, n)
max_prime, min_prime, count = prime_info(m, n)
print("素数组成的元组:", prime_tuple)
print("最大素数:", max_prime)
print("最小素数:", min_prime)
print("素数的个数:", count)
```
输出如下:
```
素数组成的元组: (2, 3, 5, 7, 11, 13, 17, 19)
最大素数: 19
最小素数: 2
素数的个数: 8
```
阅读全文