输入一个大于3的整数n,判断它是否为素数。(输出yes/no) 例如,输入4,输出no; 输入7,输出yes。 错误输入,则输出error。所有输出没有回车符号。
时间: 2024-09-29 12:15:24 浏览: 44
为了判断一个大于3的整数n是否为素数,我们可以采用以下算法:
1. 首先检查n是否能被2或3整除,因为除了2和3以外的偶数都不是素数,而小于或等于平方根的因数都可以确定一个数是否为素数。
2. 然后从5开始,每次加2(跳过2和4,因为已经处理过了),一直检查到sqrt(n),如果在这个范围内找到能整除n的因子,那么n就不是素数。
3. 如果上述步骤都没有找到因子,那么n就是素数。
以下是判断过程的伪代码:
```python
def is_prime(n):
if n <= 1 or (n % 2 == 0 and n > 2): # 错误输入或偶数(非素数)
return "error"
elif n == 2 or n == 3: # 特殊情况,2和3都是素数
return "yes"
else: # 检查奇数
for i in range(3, int(n ** 0.5) + 1, 2):
if n % i == 0:
return "no"
return "yes"
# 示例
print(is_prime(4)) # 输出 "error"
print(is_prime(7)) # 输出 "yes"
```
阅读全文