输入两个正整数m和n(m<n),利用生成器对象生成[m,n]上的所有素数组成的元组,并使用适当的函数求出其中的最大素数、最小素数和素数的个数。
时间: 2024-01-27 19:03:24 浏览: 24
可以先定义一个生成器函数 `prime_generator`,用于在区间 `[m, n]` 中生成所有素数:
```python
def prime_generator(m, n):
for num in range(m, n+1):
if num > 1:
for i in range(2, int(num**0.5)+1):
if num % i == 0:
break
else:
yield num
```
然后可以使用这个生成器函数生成所有素数,并将它们存储在一个列表中:
```python
primes = list(prime_generator(m, n))
```
最大素数和最小素数可以通过 `max` 和 `min` 函数得到:
```python
max_prime = max(primes)
min_prime = min(primes)
```
素数的个数可以通过 `len` 函数得到:
```python
prime_count = len(primes)
```
最终的代码如下:
```python
def prime_generator(m, n):
for num in range(m, n+1):
if num > 1:
for i in range(2, int(num**0.5)+1):
if num % i == 0:
break
else:
yield num
m = 10
n = 50
primes = list(prime_generator(m, n))
max_prime = max(primes)
min_prime = min(primes)
prime_count = len(primes)
print("最大素数:", max_prime)
print("最小素数:", min_prime)
print("素数的个数:", prime_count)
```