用python 完成以下功能:求[m,n]范围内的全部素数并输出。m、n是键盘输入的正整数,如果m、n有0及负整数,则输出“输入不是正整数!”;如果范围内有素数,则输出素数,若无素数,则输出“不存在素数!”。要求: 1)定义isPrime(m)函数,判断正整数m是否是素数,是素数返回True,否则返回False。2)定义prtPrime(m,n)函数,打印[m,n]范围内的素数,该函数返回值是找到的素数个数,同时控制一行最多是5个素数打印。
时间: 2024-03-26 15:35:46 浏览: 277
以下是实现求[m,n]范围内的全部素数并输出的代码:
```python
def isPrime(m):
"""
判断正整数m是否是素数,是素数返回True,否则返回False
"""
if m <= 1:
return False
for i in range(2, int(m ** 0.5) + 1):
if m % i == 0:
return False
return True
def prtPrime(m, n):
"""
打印[m,n]范围内的素数,该函数返回值是找到的素数个数,
同时控制一行最多是5个素数打印。
"""
if m <= 0 or n <= 0:
print("输入不是正整数!")
return 0
count = 0 # 记录找到的素数个数
for i in range(m, n+1):
if isPrime(i):
count += 1
print(i, end='\t')
if count % 5 == 0:
print()
if count == 0:
print("不存在素数!")
else:
print()
return count
# 测试函数
m = int(input("请输入m:"))
n = int(input("请输入n:"))
count = prtPrime(m, n)
print("[{}, {}]范围内共找到{}个素数。".format(m, n, count))
```
代码中定义了两个函数:`isPrime(m)` 和 `prtPrime(m, n)`。函数 `isPrime(m)` 用于判断一个数是否是素数,是素数返回 True,否则返回 False;函数 `prtPrime(m, n)` 用于打印 [m, n] 范围内的素数,并返回找到的素数个数。
在 `prtPrime(m, n)` 函数中,首先判断 m 和 n 是否为正整数,如果有一个不是,则输出提示信息并返回 0。接着,使用 `isPrime(i)` 判断每个数是否为素数,如果是,则将计数器 `count` 加一,并打印该素数。同时,控制每行最多只打印 5 个素数,使用 `count % 5 == 0` 来判断是否需要换行。最后,如果没有找到素数,则输出提示信息“不存在素数!”;否则,输出找到的素数个数。
最后,程序从键盘输入 m 和 n,调用 `prtPrime(m, n)` 函数,输出符合要求的素数,并输出找到的素数个数。
阅读全文