A.cpp 723 B

1234567891011121314151617181920212223242526272829303132
  1. //
  2. // Created by jal on 2019-05-01.
  3. //
  4. #include<bits/stdc++.h>
  5. using namespace std;
  6. int main(){
  7. int l,r;
  8. cin >> l >> r;
  9. int n = r - l + 1;
  10. vector<bool>a(n, true);
  11. vector<int>prime;
  12. int m = sqrt(r);
  13. vector<bool>f(m+1, true);
  14. for(int i = 2; i <= m; i++){
  15. if(f[i]){
  16. prime.push_back(i);
  17. }
  18. for(int j = 0; j < prime.size() && prime[j]*i <= m; j++){
  19. f[prime[j]*i] = false;
  20. }
  21. }
  22. for(int i = 0; i < prime.size(); i ++){
  23. int k = prime[i];
  24. for(int j = max(2, (l + k - 1) / k * k); j <= r; j+= k){
  25. a[j-l] = false;
  26. }
  27. }
  28. cout << accumulate(a.begin(), a.end(), 0) << endl;
  29. }
  30. //2100000000 2101000000