Онлайн компилятор C

#include <stdio.h> int main() { int n; int m = 0; scanf("%d ", &n); for (int i = 2; i < n; i++) { if (n % i == 0) { m = 1; break; } } if (m == 0) printf("YES"); if (m != 0) printf("NO"); return 0; }
这段代码的功能是判断一个整数是否为质数。如果输入的数字是质数,输出"YES",否则输出"NO"。代码的基本思路是检查从2到n-1之间是否有能整除n的数,如果有则标记为不是质数。

- 你的循环条件 `i < n` 是正确的,但注意当n为2时,循环不会执行,m保持为0,会输出"YES",而2确实是质数,所以这部分没问题。但需要思考n为1或更小的情况,因为1不是质数,你的代码会错误地输出"YES"。

- 另外,`scanf` 中的格式字符串 `"%d "` 末尾有一个空格,这会导致输入后需要额外输入一个非空白字符才能结束,建议去掉那个空格。