这个程序为什么不能一下子把输入数据之间的素数都输出来

#include

int prime(int num);
int main()
{
int m,n,i,flag;
flag=0;
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
{
flag=prime(i);
if(flag==1)
{

       printf("%d ",i);
   }

}

}
int prime(int a)
{
int b;
scanf("%d",&a);
if(a==1)
return 0;
else if(a==2)
return 1;
else
{
for(b=2;b
{
if(a%b==0)
{
return 0;
}
}
}
}

scanf("%d",&a);这条多余的吧?

scanf("%d",&a);去掉即可。
因为a是被传参过来的,a是形参,接收来自主函数实参i的值,已经有传来的值了,且题意也无过多要求,不需要再输入a的值了。
如有帮助,还请采纳!谢谢!