Python编写题目:用While…True(半路循环结构)判断用户输入的一个数是否为素数; 要求:用户输入非数字提示出错,继续输入;用户输入字母n或N时,程序结束。
时间: 2023-06-08 12:08:34 浏览: 111
输入一个正整数,判断是不是素数(C++)
好的,我知道了,我可以帮你回答这个问题。
以下是 Python 代码实现:
```python
while True:
num_input = input("请输入一个数字判断是否为素数(输入n或N退出程序):")
if num_input.upper() == 'N':
print("程序已退出。")
break
# 判断用户输入是否为数字
if not num_input.isdigit():
print("请输入数字!")
continue
num = int(num_input)
if num < 2:
print("请输入大于等于2的数字!")
continue
flag = True
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
flag = False
break
if flag:
print(num, "是素数。")
else:
print(num, "不是素数。")
```
代码中,我们利用 `while True` 创建一个半路循环结构,保证程序不断运行,直到用户输入字母 n 或 N 退出程序。在每一次循环开始时,先判断用户输入是否为 n 或 N,如果是则结束程序,否则进入下一个判断。
接下来,我们判断用户输入是否为数字,如果不是则提示用户重新输入。如果用户输入的数字小于2,则提示用户重新输入,因为2是最小的素数。
然后,我们利用一个布尔变量 `flag` 判断用户输入的数字是否为素数。如果用户输入的数字能被2到根号n之间的任意一个数整除,则说明该数字不是素数,因此将 `flag` 置为 False 并跳出循环。反之,如果循环完毕后 `flag` 仍然为 True,则说明该数字是素数。
最后,根据 `flag` 的值输出结果。
我希望这段代码能够帮到你,如果你有其他问题,可以继续问我。
阅读全文