n = int(input())if n == 1: print('no')elif n == 2: print('yes')else: for i in range(2, int(n**(1/2))+1): if n % i == 0: print('no') break else: print('yes')检查错误
时间: 2024-03-25 13:36:19 浏览: 154
无法从 int? 转换为 int 运行时出现错误
这段代码看起来没有明显的语法错误。不过在测试时,可能会出现一些问题,例如:
- 当输入为负数时,程序会出现错误。
- 当输入为0时,程序会输出'yes',但实际上0不是质数。
- 当输入为大于2的偶数时,程序会遍历到该数的一半,这是没有必要的,因为它不可能是质数。
为了解决这些问题,可以将代码改为:
```python
n = int(input())
if n <= 1:
print('no')
elif n == 2:
print('yes')
elif n % 2 == 0:
print('no')
else:
for i in range(3, int(n**(1/2))+1, 2):
if n % i == 0:
print('no')
break
else:
print('yes')
```
这个改进后的代码:
- 对于负数和1,输出'no'。
- 对于0、2和大于2的偶数,输出'no'。
- 对于大于2的奇数,只遍历奇数,因为偶数一定不是质数。
阅读全文