Online Compiler C

#include <stdio.h> int main() { int num,i=1,sum=0; scanf("%d",&num); while(i<=num){ if(num%i==0) sum++; i++; } if(sum>2 && ) printf("NO"); else printf("YES"); return 0; }
这段代码试图判断一个数是否为质数。它通过计算该数的因数个数,如果因数个数大于2则输出"NO"(不是质数),否则输出"YES"(是质数)。但代码中存在一个语法错误和逻辑问题。

- 第10行 `if(sum>2 && )` 中,`&&` 后面缺少条件表达式,导致编译错误。你需要补全这个条件,或者直接使用 `if(sum>2)` 即可,因为质数的定义是只有1和自身两个因数。
- 注意:当输入数字为1时,它的因数只有1个,按当前逻辑会输出"YES",但1不是质数。你需要考虑如何处理这种情况。