从TopCoder学来的一段代码,很简炼的说。特录之以为志。
质数筛选器
const int MAX_NUM = 100001;
unsigned char isPrime[MAX_NUM];
void GetPrime (void)
{
memset(isPrime, 1, sizeof(isPrime));
isPrime[0] = isPrime[1] = 0;
for (int i = 2; i*i < MAX_NUM; i++)
if (isPrime[i])
for (int j = i*i; j < MAX_NUM; j += i)
isPrime[j] = 0;
}