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

#include <stdio.h> int main() { int num,i=1,sum=0; scanf("%d",&num); printf("NO"); else while(i<=num){ if(num%i==0) sum++; i++; } if(sum>2 && num == 1) printf("NO"); else printf("YES"); return 0; }
这段代码试图判断一个数是否为质数,但存在逻辑错误和语法错误。

- 第7行的 `else` 没有对应的 `if`,会导致编译错误。`else` 必须紧跟在 `if` 语句之后,不能单独出现。
- 判断质数的逻辑有误。质数是指大于1且只能被1和自身整除的数。你的代码中 `sum` 统计的是因数的个数,但条件 `sum>2 && num == 1` 不正确,而且当 `num` 为质数时,`sum` 应该等于2(1和自身),但你的输出条件写反了。