fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define faster() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  4. int dem[1000005];
  5. int nt[1000000];
  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(1000000);i++)
  11. if (nt[i]==0)
  12. for (int j=i*i;j<=1000000;j+=i) nt[j]=1;
  13. }
  14. int uoc[1000005];
  15. // Hàm này là hàm sàng biến đổi để đếm số lượng các ước của 1 số
  16. void sanguoc(){
  17. uoc[0]=0;
  18. for (int i=1;i<=1000000;i++)
  19. for (int j=i;j<=1000000;j+=i)
  20. uoc[j]++;
  21. }
  22. // Hàm này là hàm cộng dồn số hoàn hảo
  23. void sangshh(){
  24. dem[0]=0;
  25. for (int i=1;i<=1000000;i++)
  26. // Kiểm tra xem số lượng ước của 1 số có phải là số nguyên tố hay không?
  27. if (nt[uoc[i]]==0) dem[i]=dem[i-1]+1;
  28. else dem[i]=dem[i-1];
  29. }
  30. void solve(){
  31. int a, b;
  32. cin >> a >> b;
  33. cout << dem[b]-dem[a-1] << "\n";
  34. }
  35. int main(){
  36. int t;
  37. faster();
  38. cin >> t;
  39. sang();
  40. sanguoc();
  41. sangshh();
  42. while (t--) solve();
  43. }
Success #stdin #stdout 0.04s 15148KB
stdin
1
2 9
stdout
6