用python代码实现,设置输入两个正整数m和n(m<n),利用生成器对象生成[m,n]上的所有素数组成的元组,并使用适当的函数求出其中的最大素数、最小素数和素数的个数。
时间: 2024-01-28 18:03:03 浏览: 64
python 生成口算题 输出到WORD文档
好的,以下是实现代码:
```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]上的所有素数组成的元组"""
prime_list = [num for num in range(m, n+1) if is_prime(num)]
return tuple(prime_list)
def max_min_count_primes(prime_tuple):
"""求出元组中的最大素数、最小素数和素数的个数"""
max_prime = max(prime_tuple)
min_prime = min(prime_tuple)
count_primes = len(prime_tuple)
return max_prime, min_prime, count_primes
m, n = 10, 50
prime_tuple = prime_tuple(m, n)
max_prime, min_prime, count_primes = max_min_count_primes(prime_tuple)
print(f"在[{m},{n}]上的素数有:{prime_tuple}")
print(f"最大素数是:{max_prime}")
print(f"最小素数是:{min_prime}")
print(f"素数的个数是:{count_primes}")
```
运行结果如下:
```
在[10,50]上的素数有:(11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47)
最大素数是:47
最小素数是:11
素数的个数是:11
```
阅读全文