python编写程序实现打印m到n范围之内的素数(要求:要有异常处理,一行只能输出8个)
时间: 2023-12-14 17:40:12 浏览: 35
以下是实现该功能的Python程序:
```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
try:
m = int(input("请输入m的值:"))
n = int(input("请输入n的值:"))
if m > n:
raise ValueError("m必须小于等于n")
count = 0
for i in range(m, n + 1):
if is_prime(i):
print(i, end='\t')
count += 1
if count % 8 == 0:
print()
if count % 8 != 0:
print()
except ValueError as ex:
print("输入错误:", ex)
except Exception as ex:
print("程序异常:", ex)
```
代码解释:
1. `is_prime` 函数用于判断一个数是否为素数,采用的是试除法。
2. `try-except` 结构用于处理输入和运行时可能出现的异常情况。
3. 在输入 `m` 和 `n` 后,先判断 `m` 是否大于 `n`,如果是则抛出 `ValueError` 异常。
4. 用 `count` 变量记录已经输出的素数个数,每输出一个素数就将 `count` 加 1。当 `count` 取模 8 等于 0 时,说明已经输出了 8 个素数,需要换行。
5. 当循环结束时,如果最后一行还没有满 8 个素数,则需要再换一行。