素数问题怎么缩减时间
http://acm.hdu.#include <stdio.h>
void abc();
int z[100000];
int main()
{
int n,a,i;
abc();
while(scanf("%d",&n)!=EOF)
{
a=0;
for(i=1;n>=z[i];i++)
{
if(n%z[i]==0)
{a=i;}
}
printf("%d\n",a);
}
return 0;
}
void abc()
{
int i,j,a=0,t;
z[0]=1;z[1]=2;z[2]=3;z[3]=5;z[4]=7;z[5]=11;z[6]=13;z[7]=17;z[8]=19;
t=4;
for(i=23;i<1000000;i+=2)
{
for(j=2;j<=t;j++)
{
if(i%z[j]==0)
{
a=0;break;
}
else
a=1;
}
if(a==1)
{t++;z[t]=i;}
}
}