请教,为什么我的判断条件并没有符合我的要求;还有如何缩短时间
http://acm.hdu.#include <stdio.h>
int z[100086];
int abc();
int main()
{
int i,t,m,a,b,p,q,j;
t=abc();
while(scanf("%d%d%d",&m,&a,&b)!=EOF)
{
p=0;q=0;
if(m==0&&a==0&&b==0)
break;
for(i=0;i<t;i++)
{
for(j=0;j<=i;j++)
{
if(z[j]*z[i]<=m&&a*z[i]<=b*z[j])
{p=z[j];q=z[i];}
if(q*2>m)
break;
}
}
printf("%d %d\n",p,q);
}
return 0;
}
int abc()
{
int x[100086];
int i,j,k;
k=0;
for(i=2;i<100000;i++)
{
x[i]=i;
}
for(i=2;i<100000;i++)
{
if(x[i]!=0)
{
z[k++]=x[i];
for(j=i+i;j<100000;j+=i)x[j]=0;
}
}
return k;
}