Online Compiler C

#include <stdio.h> int main() { int n; scanf("%d", &n); int flag = 1; if (n <= 1) flag = 1; else { for (int i = 2 : i * i <= n; i++) { if(n%1==0) { flag = 0; break; } } } if (flag == 1) printf("YES"); else printf("NO"); return 0; }
这段代码试图判断一个整数是否为质数(素数),但存在语法错误和逻辑问题。代码中使用了错误的循环语法 `for (int i = 2 : i * i <= n; i++)`,其中冒号 `:` 应改为分号 `;`。另外,条件 `if(n%1==0)` 永远为真,因为任何整数除以1的余数都是0,这导致程序无法正确判断质数。

- 检查循环的语法:C语言的for循环使用分号分隔三个部分,而不是冒号。
- 检查取模运算:判断整除时应该用 `n % i == 0`,而不是 `n % 1 == 0`。