想知道为啥运行是输入4,得到的结果是NoYes,可以看看是哪里出错了嘛?嘛!!

#include<stdio.h>
#include<math.h>
int prime(int m);
int main(void)
{
int M;
while(scanf("%d",&M)!=EOF)
{
prime(M);
printf("\n") ;
}
return 0;
}

int prime(int m)
{
int i;
double limit;
if(m==1)
{
printf("No");
}
else
{
limit=sqrt(m)+1;
for(i=2;i<=limit;i++)
{
if(m%i==0)
{
printf("No");
}
}
printf("Yes");
return result;

}

}

你的prime函数里面的result没有定义,不需要返回值


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


void prime(int m) {
    int i;
    double limit;
    if(m == 1) {
        printf("No");
    } else {
        limit = sqrt(m) + 1;
        for(i = 2; i <= limit; i++) {
            if(m % i == 0) {
                printf("No");
            }
        }
        printf("Yes");

    }
}
int main(void) {
    int M;
    while(scanf("%d", &M) != EOF) {
        prime(M);
        printf("\n") ;
    }
    return 0;
}