Advertisement
Saleh127

UVA 10539

Aug 10th, 2020
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define maX 1000008
  5. vector<ll>p;
  6. bool marked[maX];
  7. void sieve()
  8. {
  9. marked[0]=1;
  10. marked[1]=1;
  11.  
  12. for(ll i=4; i<=maX; i+=2)
  13. {
  14. marked[i]=1;
  15. }
  16.  
  17. p.push_back(2);
  18.  
  19. for(ll i=3; i<=maX; i+=2)
  20. {
  21. if(marked[i]==0)
  22. {
  23. p.push_back(i);
  24.  
  25. for(ll j=i*i; j<=maX; j+=i+i)
  26. {
  27. marked[j]=1;
  28. }
  29. }
  30. }
  31. }
  32. ll almostprime(ll a,ll c)
  33. {
  34. ll ans=0,i,j;
  35.  
  36. for(i=0; i<p.size(); i++)
  37. {
  38. if(p[i]*p[i]>c) break;
  39.  
  40. for(j=p[i]*p[i]; j<=c; j*=p[i])
  41. {
  42. if(j>=a)
  43. {
  44. ans++;
  45. }
  46. }
  47. }
  48. return ans;
  49. }
  50.  
  51. int main()
  52. {
  53. ios_base::sync_with_stdio(0);
  54. cin.tie(0);
  55. cout.tie(0);
  56.  
  57. sieve();
  58.  
  59. ll t,a,c,d,i,j,k,l;
  60.  
  61. cin>>t;
  62. while(t--)
  63. {
  64. cin>>a>>c;
  65. cout<<almostprime(a,c)<<endl;
  66. }
  67.  
  68. return 0;
  69. }
  70.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement