Online Compiler C

#include <stdio.h> int main() { int x, num, digit; scanf("%d", &x); num = x-1; if(x==2){ printf("YES"); return 0; } while(num >1 ){ digit = x%num; if(digit == 0){ printf("NO"); return 0; } num--; } printf("YES"); return 0; }
这段代码的功能是判断一个整数是否为质数。它从 `x-1` 开始向下检查,看是否有能整除 `x` 的数。如果找到,就输出 "NO" 并结束;如果循环结束都没找到,就输出 "YES"。

- 代码对 `x==2` 做了特殊处理,但缺少对 `x` 小于 2 的情况的判断。比如输入 1 或 0 或负数,程序会错误地输出 "YES"。
- 循环从 `x-1` 开始检查,其实只需要检查到 `num*num > x` 即可,这样效率更高。不过这不是错误,只是可以优化。