在线编译器 C

#include <stdio.h> int main() { int n; int m = 0; scanf("%d ", &n); if (n != 1) { 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; }
这段代码的功能是判断一个整数n是否为质数。如果是质数则输出YES,否则输出NO。代码逻辑基本正确,但有一个小问题需要注意。

- 当n等于1时,代码直接跳过了循环,m保持为0,因此会输出YES。但1不是质数,需要单独处理。
- 另外,scanf中的格式字符串"%d "末尾有一个空格,这会导致输入后需要额外输入一个非空白字符才能继续,建议去掉这个空格。