Advertisement
Farjana_akter

Untitled

Jan 8th, 2020
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define maxn 1000006
  5. typedef long long int ll;
  6.  
  7.  
  8. vector<ll>prime;
  9. int mark[maxn];
  10.  
  11. void sieve()
  12. {
  13. prime.push_back(2);
  14. for(int i=4; i<maxn; i+=2)
  15. {
  16. mark[i]=1;
  17. }
  18. for(int i=3; i*i<maxn; i+=2)
  19. {
  20. if(mark[i]==0)
  21. {
  22. for(int j=i*i; j<maxn; j+=(2*i))
  23. {
  24. mark[j]=1;
  25. }
  26. }
  27. }
  28.  
  29. for(int i=3; i<maxn; i+=2)
  30. {
  31. if(!mark[i])
  32. {
  33. prime.push_back(i);
  34. }
  35. }
  36.  
  37. }
  38.  
  39. int main()
  40. {
  41. sieve();
  42. ll i,j,k,l,r,a;
  43. int t;
  44. scanf("%d",&t);
  45. while(t--)
  46. {
  47. scanf("%lld %lld",&l,&r);
  48. ll cnt=0;
  49. for(i=0; prime[i]*prime[i]<=r; i++)
  50. {
  51. a=prime[i]*prime[i];
  52. while(a<=r)
  53. {
  54. if(a>=l)
  55. cnt++;
  56. a=a*prime[i];
  57. }
  58. }
  59. printf("%lld\n",cnt);
  60. }
  61. return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement