打印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);i++)
{
if(prime%i==0)
{
flag=0;
break;
}
}
if(flag==1)
{
printf("%d\n",prime);
count++;
}
if(count==9)
break;

}
getch();

}

把素数标志在当前整数判断完是否后重新设置为1,然后把控制打印素数个数的判断改为count==10就可以了,修改如下:

#include "stdio.h"
#include "math.h"
int main(void)
{
    int prime,count=0,i,flag=1;
    for(prime=10000;prime>1;prime--)
    {
        for(i=2;i<=sqrt(prime*1.0);i++)
        {
            if(prime%i==0)
            {
                flag=0;
                break;
            }
        }
        
        if(flag==1)
        {
            printf("%d\n",prime);
            count++;
        }
        
        flag=1; //素数标志重新设置1 
        
        if(count==10)
            break;
    
    }
    
    getchar();
}

报啥错误