c语言问题啊,素数,啊

题目:完成函数IsPrime(int x),该函数用于判断整数x是否为素数,并将判断结果作为函数值返回。在main()函数中输入2个正整数m和n分别作为区间的上、下界,调用函数IsPrime(x)求[m,n]区间内所有素数,并按从小到大的次序输出。
输入:输入1行,包含2个整数,即正整数m和n,两个整数之间用空格隔开。
输出:输出1行,包含多个整数,每个整数之间用空格隔开。
输入:
2 15
输出:
2 3 5 7 11 13
我的代码有问题,帮忙看看
我输入2 15,就输出2 3


#include <stdio.h>
void IsPrime(int m,int n)
{
   int i,j,t=1;
   for(i=m;i<=n;i++)
   {
         for(j=2;j<i;j++)
      {    
        if((i%j)==0)
        t=0;  
      }
     if(t==1) printf("%d ",i);
   }
}
  int main()
{
  int m,n;
  scanf("%d%d",&m,&n);
  IsPrime(m,n);
  return 0;
}


供参考:

#include <stdio.h>
int  IsPrime(int x)
{
   int j;
   if(x <= 3) return x > 1;
   for(j=2;j*j <= x;j++)
       if((x%j)==0) return 0;
   return 1;

}
  int main()
{
  int m,n,i,j;
  scanf("%d%d",&m,&n);
  for(i=m;i<=n;i++)
     if(IsPrime(i))
        printf("%d ",i);

  return 0;
}

 
#include <stdio.h>
int isPrime(int x)
{
    int i=0;
    if(x<2)
        return 0;
    for(i=2;i*i<=x;i++)
        if(x%i==0)
            return 0;
    return 1;
}

int main()
{
  int m,n,i;
  scanf("%d%d",&m,&n);
  for(i=m;i<=n;i++)
      if(isPrime(m))
          printf("%d ",i);
  return 0;
}