Online Compiler C

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

- 代码中有一个逻辑问题:当n等于2时,while循环条件`a<n`不成立,会直接输出"YES"。但2确实是质数,所以这个情况是正确的。不过当n等于1时,也会输出"YES",而1不是质数。你需要考虑n为1或更小值时的处理。
- 另外,代码的缩进和花括号位置可以调整得更清晰,但这不是功能错误。主要问题是边界情况(如n=1)没有正确处理。