如何找到1百万这个范围内的素数???
我们用一个数组prime来保存结果
prime[0]保存素数的个数
#define maxn 1000000
int arr[maxn + 5] = {0};
void init(){//这是一种标记法+巧用因子法,如果你不理解,那么请看看素数的概念。
for(int i = 2; i <= maxn; i++){
if(!arr[i]) prime[++prime[0]] = i;
for(int j = 1; j <= prime[0]; j++){
if(prime[j] * i > maxn) break;
prime[prime[j] * i] = 1;
if(i % prime[j] == 0) break;
}
}
}