C语言判断m是否为素数,若是返回1,否则返回0,程序共有4数错误,请找出并改正。
时间: 2024-03-13 08:44:30 浏览: 61
以下是改正后的程序:
```
int is_prime(int m) {
if (m <= 1) {
return 0;
}
for (int i = 2; i <= m / 2; i++) {
if (m % i == 0) {
return 0;
}
}
return 1;
}
```
改正之处:
1. 函数名 `is_prime` 应该使用小写字母;
2. `for` 循环中判断条件应该是 `i <= m / 2` 而不是 `i < m / 2`,因为如果 m 是偶数,`m/2` 会向下取整,导致漏掉一个因子;
3. 函数应该在判断 m 是否小于等于 1 的情况下直接返回 0,因为 1 不是素数;
4. `if` 语句中的比较符应该使用 `==` 而不是 `=`,因为 `=` 是赋值符号,会改变变量的值。
阅读全文