c语言,请问这个代码是哪里的错误啊?

#include <stdio.h>
#include <math.h>
int main()
{
    int num;
    while(scanf("%d", &num) != EOF)
    {
        if(is_primer(num))
            puts("YES");
        else
            puts("NO");
    }
    return 0;
}
int is_primer(int a)
{
    int i;
    if(a==1)
        return 0;
    for(i=2;i<=(int)sqrt(a);i++)
        if(a%i==0)
        return 1;
    return 0;
}

img

int is_primer(int a);函数未声明,is_primer()判断素数的函数里,最后两个 return 写反了,修改如下,供参考:

#include <stdio.h>
#include <math.h>

int is_primer(int a);//这里缺了函数的声明

int main()
{
    int num;
    while(scanf("%d", &num) != EOF)
    {
        if(is_primer(num))
            puts("YES");
        else
            puts("NO");
    }
    return 0;
}

int is_primer(int a)
{
    int i;
    if(a==1)
        return 0;
    for(i=2;i<=(int)sqrt(a);i++)
        if(a%i==0)
           return 0;//return 1;
    return 1;       //return 0;
}
int main()
{
    int num;
    while(scanf("%d", &num) != EOF)
    {
        if(is_primer(num))
            puts("YES");
        else
            puts("NO");
    }
    return 0;
}

oj题目,显示wrong answer