从键盘任意输入一个正整数,编程判断它是否是素数,若是素数,输出“Yes!”,否则输出“No!”。已知负数、0和1都不是素数。请找出下面程序的错误并改正之,同时按照给出的运行示例检查修改后的程序。
时间: 2024-03-16 19:41:12 浏览: 132
python判断所输入的任意一个正整数是否为素数的两种方法
5星 · 资源好评率100%
很高兴回答你的问题!
这里是一个修改后的程序:
```python
n = int(input("请输入一个正整数:"))
if n <= 1:
print("No!")
else:
for i in range(2, int(n**0.5)+1):
if n % i == 0:
print("No!")
break
else:
print("Yes!")
```
程序的错误在于,判断素数的循环应该是在2到n的平方根(取整数部分)范围内进行,而不是在2到n-1范围内进行。这是因为如果一个数有一个大于它平方根的因子,那么它一定也有一个小于它平方根的因子,因此只需要判断到平方根即可。
下面是程序运行示例:
```
请输入一个正整数:23
Yes!
请输入一个正整数:27
No!
```
阅读全文