10000以内素数打印,从大到小,找出十个,帮找BUG

#include "stdio.h"
#include "math.h"
void main(void)
{
int prime,count=0,i,flag=1;
for(prime=10000;prime>1;prime--)
{
for(i=2;i<sqrt(prime*1.0)+1;i++)
{
if(prime%i==0)
{
flag=0;
break;
}
}
if(flag==1)
{
printf("%d\n",prime);
count++;
}
if(count==9)
break;
}
getch();
}

你好,望采纳!
加了详细注释,下面配置打印的个数
if(k>10){//到10个后退出
break;
}

#include<stdio.h>
int main()
{
    int i,j,k=0;//i是2-10000待确认是否为素数的数,j表示i的因子,k表示素数的个数
    for(i=2;i<10000;i++)
    {
        for(j=2;j*j<=i;j++)
        {
            if(i%j==0)//判断i是否能被1和本身以外的数整除,%表示求余
            break;//break跳出第二个for循环
        }
        if(j*j>i)
        {
            printf("%d ",i);
            k++;//每增加一个素数k就加1
          if(k>10){//到10个后退出
             break;
            }
            if(k%10==0)//一行打印10个数之后换行
            {
                printf("\n");
            }
        }
    }
}