fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define faster() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
  4. int nt[10000005]={};
  5. int dem[10000005];
  6. // Hàm này dùng để sàng số nguyên tố
  7. void sang(){
  8. nt[0]=1;
  9. nt[1]=1;
  10. for (int i=2;i<=sqrt(10000000);i++)
  11. if (nt[i]==0)
  12. for (int j=i*i;j<=10000000;j+=i) nt[j]=1;
  13. }
  14. // Hàm này dùng để cộng dồn các số nguyên tố
  15. void hamdem(){
  16. dem[0]=0;
  17. for (int i=1;i<=10000000;i++)
  18. if (nt[i]==0) dem[i]=dem[i-1]+1;
  19. else dem[i]=dem[i-1];
  20. }
  21. // Hàm này dùng để đưa ra kết quả
  22. void solve(){
  23. int n;
  24. cin >> n;
  25. // Xem giải thích ở phần ý tưởng
  26. if (n==2) cout << 1 << "\n";
  27. else{
  28. int d=n/2;
  29. int kq=dem[n]-dem[d]+1;
  30. cout << kq << "\n";
  31. }
  32. }
  33. int main(){
  34. faster();
  35. sang();
  36. hamdem();
  37. int t;
  38. cin >> t;
  39. while (t--) solve();
  40. }
  41.  
  42.  
Success #stdin #stdout 0.15s 81548KB
stdin
3
2
4
8
stdout
1
2
3