打素数表
思想是:如果这个数是素数,那么这个数的倍数一定不是素数。
这样就把所有的素数挑出来了。
bool isprime[11000];
void init()///这段函数通常只作为预处理。
{
memset(isprime,true,sizeof(isprime));///初始化,假设所有的数都是素数
for(int i=2;i<=10000;i++)///这里只找到10000
{
if(isprime[i]==true)///如果这个数是素数
{
for(int j=i+i;j<=10000;j+=i)///寻找它的倍数
{
isprime[j]=false;///那它的倍数就不是素数咯
}
}
}
return;
}
///这样主函数判断一个数是不是素数只要调用一下isprime[x]看看是不是true就阔以了。