There is a basic way to judge whether a number is a prime:
int isprime(int x)
{
int i;
float fx,sqrtx;
if(x<=1)
return 0;
else if(x==2)
return 1;
else
{
if(x%2==0)
return 0;
else
{
fx=x;
sqrtx=sqrt(fx);
for(i=3;i<=sqrtx;i+=2)
if( x%i==0 )
return 0;
return 1;
}
}
}void getPrime()
{//筛法
int i,j;
int bound=sqrt((double)n);
for(i=2;i<n;i++)prime[i]=1;//将所有的数置1,表示这些数都是素数.
for(i=2;i<bound;i++)
{//注意从2开始
for(j=i+i;j<n;j+=i)//将2的倍数置成0,表示不是素数
prime[j]=0;
}
}
原文:http://blog.csdn.net/taoqick/article/details/18373243