Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. #include <algorithm>
  2. #include <cstdlib>
  3. #include <climits>
  4. #include <cstring>
  5. #include <cmath>
  6. #include <functional>
  7. #include <utility>
  8.  
  9. #include <cstdio>
  10. #include <iostream>
  11.  
  12. #include <stack>
  13. #include <queue>
  14. #include <deque>
  15. #include <string>
  16. #include <vector>
  17. #include <map>
  18. #include <list>
  19.  
  20. #define f first
  21. #define s second
  22. #define mp make_pair
  23. #define pb push_back
  24. #define popb pop_back
  25. #define ll long long
  26. #define ull unsigned long long
  27. #define pii pair<int,int>
  28. #define pll pair<ll,ll>
  29. #define pdd pair<double,double>
  30. const double PI=acos(-1);
  31.  
  32. #define for1(i, a, b) for (int i=a; i<=b; i++)
  33. #define rep(i, t) for (int i=0; i<t; i++)
  34. #define RESET(a, b) memset(a, b, sizeof(a))
  35.  
  36. #define INF 1000000007
  37. #define MOD 1000000007
  38. #define EPS 1e-9
  39.  
  40. #ifdef _WIN32
  41. #define getchar_unlocked getchar
  42. #endif
  43. template <typename T>
  44. T io(){
  45. T res=0;
  46. int sign=1;
  47. char c;
  48. while(1){
  49. c=getchar_unlocked();
  50. if (c==' '||c=='\t') continue;
  51. else break;
  52. }
  53. res=c-'0';
  54. while(1){
  55. c=getchar_unlocked();
  56. if (c>='0' && c<='9') res=10*res+c-'0';
  57. else break;
  58. }
  59. return res;
  60. }
  61.  
  62. void getstr(char* res){
  63. char c;
  64. while(1){
  65. c=getchar_unlocked();
  66. if(c==' ' || c=='\n') continue;
  67. else break;
  68. }
  69. *res=c; res++;
  70. while(1){
  71. c=getchar_unlocked();
  72. if (c==' ' || c=='\n' || c==EOF) break;
  73. *res=c; res++;
  74. }
  75. *res='\0';
  76. }
  77. using namespace std;
  78.  
  79. bool isPrime(int n){
  80. if (n<2) return false;
  81. if (n==2) return true;
  82. if(n%2==0) return false;
  83. for (int i=3;i*i<=n;i++){
  84. if (n%i==0) return false;
  85. }
  86. return true;
  87. }
  88.  
  89. int main(){
  90. vector<ll> prime;
  91. for (int i=2;i<100000;i++){
  92. if (isPrime(i)) prime.pb(i);
  93. }
  94. int tc;
  95. scanf("%d",&tc);
  96. while(tc--){
  97. ll n,k;
  98. scanf("%lld%lld",&n,&k);
  99. vector<ll>::iterator count,count1;
  100. count=upper_bound(prime.begin(),prime.end(),sqrt(n));
  101. count1=upper_bound(prime.begin(),prime.end(),sqrt(k));
  102. // cout<<count-prime.begin()<<" "<<count1-prime.begin()<<endl;
  103. if (k>n) printf("%lld 0\n",count-prime.begin());
  104. else printf("%lld %lld\n",count-prime.begin(),(count-prime.begin())-(count1-prime.begin()));
  105. }
  106. return 0;
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement