Online Compiler C

#include <stdio.h> int main() { int x, num, digit; scanf("%d", &x); num = x - 1; if (x == 1) { printf("NO"); return 0; } 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能否被任何小于x且大于1的数整除。如果能整除,则输出NO,否则输出YES。

- 代码对x=1和x=2做了特殊处理,但x=2的判断逻辑其实可以被循环覆盖。你可以思考一下循环从x-1开始是否效率较低,以及是否有更高效的检查范围。
- 变量名digit容易让人误解为数字位,实际上它存储的是余数。你可以考虑使用更清晰的变量名,比如remainder。