Online Compiler C

#include <stdio.h> int main() { int n; scanf("%d", &n); int count = 0; for (int i = 2; i < n; i++) { if (n % i == 0) { count++; } } if (count == 0) { printf("YES"); } else { printf("NO"); } return 0; }
这段代码的功能是判断一个整数n是否为质数。它通过循环检查从2到n-1的所有数是否能整除n,如果存在能整除的数,则count增加,最后根据count是否为0输出YES(质数)或NO(非质数)。

- 你的循环条件 `i < n` 会导致当n为质数时,循环会检查到n-1,但实际只需要检查到n的平方根即可,这样可以提高效率。对于较大的n,当前方式会做很多不必要的计算。
- 另外,当n等于1时,代码会输出YES,但1不是质数。你需要考虑n为1或更小值时的特殊情况。