一牵扯到素数,大部分都要打表,一是打表方便,二就是省时;
下面介绍一种素数打表方法;
假如在1~1000000内打表;
int ans[1000010];
void is_prime( )
{
int i,j;
ans[0]=ans[1]=1;
for(i=2;i<=sqrt(1000000);i++)
{
if(!ans[i])
for(j=i*i;j<1000000;j+=i)
ans[j]=1; //将非素数标为1;
}
}
一牵扯到素数,大部分都要打表,一是打表方便,二就是省时;
下面介绍一种素数打表方法;
假如在1~1000000内打表;
int ans[1000010];
void is_prime( )
{
int i,j;
ans[0]=ans[1]=1;
for(i=2;i<=sqrt(1000000);i++)
{
if(!ans[i])
for(j=i*i;j<1000000;j+=i)
ans[j]=1; //将非素数标为1;
}
}