埃氏筛法
1. 判断区间内的素数个数
描述:
讲2~n的所有整数进行一个循环,将每个数的倍数从2 ~ n 中抹去。
#include<iostream>
using namespace std;
const int max_n = 100000000;
int result[max_n] = { 0 };
bool is_result[max_n];
int p = 0;
int solve(int n) {
for (int i = 1; i <= n; i++)
{
is_result[i] = true;
}
for (int i = 2; i <= n; i++) {
for (int j = i+i; j <= n; j += i) {
is_result[j] = false;
}
}
for (int i = 1; i < n; i++) {
if (is_result[i] == true) {
p++;
}
}
return p;
}
int main() {
int a;
cin >> a;
cout << solve(a) << endl;
return 0;
}