题意及思路
- 题意:输出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; }