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

#include <stdio.h> int main() { int x, num, digit; scanf("%d", &x); num = x-1; while(num >1 ){ digit = x%num; if(digit == 0){ printf("NO"); return 0; } num--; } printf("YES"); return 0; }
这段代码试图判断一个整数是否为质数。它从x-1开始向下检查,看x能否被某个数整除,如果能整除就输出NO,否则输出YES。

- 你的循环从x-1开始,但检查除数时只需要检查到2即可,不需要检查x-1本身,因为任何数都能被自身整除,但质数定义中不包括自身。
- 另外,当x等于1或2时,你的代码可能不会正确进入循环,导致输出YES,但1不是质数,2是质数,需要单独处理这些边界情况。