为什么答案不对,我感觉没错呀

img


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

int prime_number(int n);
int main()
{
int m,n,i,cnt=0;
scanf("%d%d",&m,&n);
for(i=m;i<n;i++)
{
if(prime_number(i))
{
cnt++;
printf("%d ",i);
}
}
printf("\n");
printf("count = %d ",cnt);

return 0;

}

int prime_number(int n)
{
int i,m,flag=1;
m=sqrt(n);
for(i=2;i<m&&flag;i++)
{
if(n%i==0)
flag=0;
}
return flag;
}#include<stdio.h>
#include<math.h>

int prime_number(int n);
int main()
{
int m,n,i,cnt=0;
scanf("%d%d",&m,&n);
for(i=m;i<n;i++)
{
if(prime_number(i))
{
cnt++;
printf("%d ",i);
}
}
printf("\n");
printf("count = %d ",cnt);

return 0;

}

int prime_number(int n)
{
int i,m,flag=1;
m=sqrt(n);
for(i=2;i<m&&flag;i++)
{
if(n%i==0)
flag=0;
}
return flag;
}#include<stdio.h>
#include<math.h>

int prime_number(int n);
int main()
{
int m,n,i,cnt=0;
scanf("%d%d",&m,&n);
for(i=m;i<n;i++)
{
if(prime_number(i))
{
cnt++;
printf("%d ",i);
}
}
printf("\n");
printf("count = %d ",cnt);

return 0;

}

int prime_number(int n)
{
int i,m,flag=1;
m=sqrt(n);
for(i=2;i<m&&flag;i++)
{
if(n%i==0)
flag=0;
}
return flag;
}#include<stdio.h>
#include<math.h>

int prime_number(int n);
int main()
{
int m,n,i,cnt=0;
scanf("%d%d",&m,&n);
for(i=m;i<n;i++)
{
if(prime_number(i))
{
cnt++;
printf("%d ",i);
}
}
printf("\n");
printf("count = %d ",cnt);

return 0;

}

int prime_number(int n)
{
int i,m,flag=1;
m=sqrt(n);
for(i=2;i<m&&flag;i++)
{
if(n%i==0)
flag=0;
}
return flag;
}

改了一点

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

int prime_number(int n);
int main()
{
    int m,n,i,cnt=0;
    scanf("%d%d",&m,&n);
    for(i=m; i<n; i++)
    {
        if(prime_number(i)==1&&i!=1)
        {
            cnt++;
            printf("%d ",i);
        }
    }
    printf("\n");
    printf("count = %d ",cnt);
    return 0;
}

int prime_number(int n)
{
    int i,m,flag=1;
    //m=sqrt(n);
    for(i=2; i<n; i++)
    {
        flag=1;
        if(n%i==0)
        {
            flag=0;
            return flag;
        }
    }
    return flag;
}