题意及思路
- 题意:输出n以内的质数个数。
- 思路:😂最核心的思想是迭代、迭代、迭代!😏首先预处理N个数,具体迭代算法见check函数。
代码
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6+5;
int q[N];
void check(int n){
for(int i=2;i<=n;i++){
q[i] = q[i-1];
bool f = true;
for(int j=2;j*j<=i;j++){
if(i%j==0){
f = false;
break;
}
}
if(f) q[i]++;
}
}
int main(){
memset(q,0,sizeof(q));
check(N);
int t;
cin >> t;
while(t--){
int n;
cin >> n;
cout << q[n] << endl;
}
return 0;
} 
京公网安备 11010502036488号