算法逻辑:
- 首先在is_prime中找到最小的数i,它就是素数
- i*n(n=2,3,4…)都不是素数
- 以此类推到n
bool is_prime[5000]; //用来统计素数个数
vector<int> prime; //素数值
//埃氏筛法
int sieve(int n){
int count = 0;
for(int i = 2;i <= n;i++) is_prime[i] = true;
for(int i = 2;i <= n;i++){
if(is_prime[i]){
++count;
prime.push_back(i);
for(int j = 2 * i;j <= n;j += i){
is_prime[j] = false;
}
}
}
return count;
}