题目:用While…True(半路循环结构)判断用户输入的一个数是否为素数; 要求:用户输入非数字提示出错,继续输入;用户输入字母n或N时,程序结束。
时间: 2024-05-06 20:21:33 浏览: 83
输入一个数,并判断它是否为素数
3星 · 编辑精心推荐
请看以下代码:
```
while True:
user_input = input("请输入一个数字:")
if user_input.lower() == 'n':
break # 用户输入字母n时,结束程序
try:
num = int(user_input)
except ValueError:
print("输入错误!请重新输入。")
continue # 用户输入的不是数字,进入下一轮循环
if num <= 1:
print(f"{num}不是素数。")
continue
is_prime = True
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
is_prime = False
break
if is_prime:
print(f"{num}是素数。")
else:
print(f"{num}不是素数。")
```
解释一下代码:
首先进入无限循环。每次循环,让用户输入一个数字,如果用户输入字母n或N,就用 `break` 命令结束程序。如果用户输入的不是数字,则捕获 `ValueError` 异常,打印"输入错误!请重新输入。",并进入下一次循环。如果用户输入的数字小于或等于1,则不是素数,打印相应信息,进入下一次循环。接下来,使用循环判断该数字是否为素数,判断方法是:判断从2到该数字的平方根之间的每个整数是否能整除该数字。如果能整除,则该数字不是素数。如果循环结束,仍然没有找到可整除它的整数,说明该数字是素数,输出相应信息。循环再次开始,直到用户输入字母n或N结束程序。
阅读全文