c语言的一道题,运行后答案部分错误,请教一下大神们逻辑哪里有错误?拜托拜托啦!急

2024-11-17 09:50:19
推荐回答(2个)
回答1:

#include 
#include 
int is_primer(int n) 
{
int i;
if(n==2)
return 1;
if(n==1)
return 0;
if(n>2) 
{
for (i=2;i {
if(n%i==0)
return 0; //else
//return 1;
}
;
}
return 1;
}
int main() 
{
int num;
while(scanf("%d", &num) != EOF) 
{
if(is_primer(num))
puts("YES"); else
puts("NO");
}
return 0;
}

回答2:

问题在: 你的 for 循环只执行了一次就返回了,所以逻辑错误。
注意:return 会造成子函数结束。