fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. const int X = 10000000;
  6.  
  7. vector<bool> is_prime(X, true);
  8. vector<int> prime_count(X, 0);
  9.  
  10. void sito() {
  11. is_prime[0] = is_prime[1] = false;
  12. for (int i = 2; i * i < X; i++) {
  13. if (is_prime[i]) {
  14. for (int j = i * i; j < X; j += i) {
  15. is_prime[j] = false;
  16. }
  17. }
  18. }
  19. for (int i = 1; i < X; ++i) {
  20. prime_count[i] = prime_count[i - 1] + (is_prime[i] ? 1 : 0);
  21. }
  22. }
  23.  
  24. int main() {
  25. ios::sync_with_stdio(false);
  26. cin.tie(0);
  27. sito();
  28. int n;
  29. cin >> n;
  30. int a, b;
  31. for (int i = 0; i < n; ++i) {
  32. cin >> a >> b;
  33. cout << prime_count[b] - prime_count[a - 1] << "\n";
  34. }
  35.  
  36. return 0;
  37. }
Success #stdin #stdout 0.06s 43332KB
stdin
2
17 27
8 33
stdout
3
7