用While…True(半路循环结构)判断用户输入的一个数是否为素数; 要求:用户输入非数字提示出错,继续输入;用户输入字母n或N时,程序结束。
时间: 2024-02-18 14:01:30 浏览: 88
好的,以下是代码实现:
```python
while True:
num = input("请输入一个数字(输入n或N退出程序):")
if num.lower() == 'n':
break
try:
num = int(num)
except ValueError:
print("输入错误,请输入数字!")
continue
if num <= 1:
print("非素数")
continue
for i in range(2, int(num**0.5)+1):
if num % i == 0:
print("非素数")
break
else:
print("是素数")
```
首先,我们使用了 `while True` 建立了一个半路循环结构,使得程序能够一直运行,直到用户输入 `n` 或者 `N` 退出。
在每次循环中,我们首先让用户输入一个数字,如果用户输入的是 `n` 或者 `N`,则使用 `break` 退出程序。
如果用户输入的不是数字,我们使用 `try-except` 捕获到 `ValueError` 异常,提示用户输入错误,并使用 `continue` 继续下一次循环。
如果用户输入的是数字,我们首先判断是否小于等于 1,如果是,则直接输出非素数,并使用 `continue` 继续下一次循环。
接下来,我们使用一个循环,从 2 到该数字的平方根进行遍历,如果能够整除,则说明不是素数,输出非素数,并使用 `break` 跳出循环。
最后,如果循环正常结束(即没有执行 `break`),则说明是素数,输出素数即可。
阅读全文