输入两个正整数m和n(m<n),利用生成器对象生成[m,n]上的所有素数组成的元组,并使用适当的函数求出其中的最大素数、最小素数和素数的个数。
时间: 2024-01-27 11:03:31 浏览: 73
好的,可以使用以下代码来解决这个问题:
```python
def is_prime(n):
"""判断一个数是否为素数"""
if n <= 1:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
def primes_in_range(m, n):
"""生成[m,n]范围内的所有素数"""
for i in range(m, n+1):
if is_prime(i):
yield i
def get_min_max_count(m, n):
"""获取[m,n]范围内素数的最大值、最小值和个数"""
primes = tuple(primes_in_range(m, n))
return max(primes), min(primes), len(primes)
m, n = 10, 50
max_prime, min_prime, prime_count = get_min_max_count(m, n)
print(f"在[{m}, {n}]范围内:")
print(f"最大素数为: {max_prime}")
print(f"最小素数为: {min_prime}")
print(f"共有{prime_count}个素数")
```
输出结果为:
```
在[10, 50]范围内:
最大素数为: 47
最小素数为: 11
共有10个素数
```
阅读全文