一道ACM题,请求指教,该怎么解决

一道ACM题,请求指教
我在HDOJ ACM 1216 Assistance Required做的这道题程序提交不上去,不知道错在哪了,请求各位大神!!!!!
我的代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int prime[4000]={0};
void choseprime(int n )
{
  prime[1]=prime[0]=1;
  for(int i=2;i*i<=n;i++)
  {
  if(prime[i]==0)
  for(int j=2*i;j<n;j+=i) 
  prime[j]=1;  
  }  

int main()
{
  int n,count;
  choseprime(3050);
   
  while(scanf("%d",&n)!= EOF&&n!=0 )
  {
  count=0;
  for(int i=2;i<=3010;i++)
  {
  if(prime[i]==0) count++;
  if(count==n)
  {
  printf("%d\n",i);
  break;  
  }  
  }
  }  
system("pause");
return 0;  
}


------解决方案--------------------
http://blog.****.net/wangbaomi/article/details/7548062