Advertisement
Guest User

Untitled

a guest
Mar 24th, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.00 KB | None | 0 0
  1. #pragma comment(linker, "/STACK:256000000")
  2. #define _CRT_SECURE_NO_WARNINGS
  3. #define _CRT_SECURE_NO_DEPRECATE
  4. #include<iostream>
  5. #include<cstdio>
  6. #include<cstdlib>
  7. #include<string>
  8. #include<cstring>
  9. #include<algorithm>
  10. #include<cmath>
  11. #include <set>
  12. #include <queue>
  13. #include <map>
  14. #include <vector>
  15. #include <unordered_map>
  16. #include <assert.h>
  17.  
  18. using namespace std;
  19.  
  20. #define mp make_pair
  21. #define pub push_back
  22. #define con continue
  23. #define forn(i, n) for (int i = 0; i < int(n); ++i)
  24. #define fornr(i, n) for (int i = n - 1; i >= 0; --i)
  25. #define forab(i, a, b) for (int i = (a); i <= int(b); ++i)
  26. typedef long long ll;
  27. typedef long double ld;
  28. typedef pair <int, int> pii;
  29. typedef vector <int> vi;
  30. typedef vector < pii > vii;
  31. typedef vector < vector < int> > vvi;
  32. typedef vector < vector < pair < int, int > > > vvii;
  33.  
  34. const int ZEROS = (int)(1E+5 * 2 + 100);
  35. const int INF = (int)1E+9;
  36. const long double EPS = 1E-18;
  37.  
  38. const int PMAX = 60;
  39. int b[PMAX + 10];
  40.  
  41. ll pw(ll a, ll p) {
  42.     ll ans = 1;
  43.     forn(i, p) {
  44.         ans *= a;
  45.     }
  46.     return ans;
  47. }
  48.  
  49. int k_in_x(ll x) {
  50.     if (x == 0)
  51.         return 0;
  52.     if (x == 1)
  53.         return 1;
  54.     forn(i, PMAX)
  55.         b[i] = 0;
  56.  
  57.     ll ans = 0;
  58.  
  59.     //all p
  60.     for (int p = PMAX; p >= 2; --p) {
  61.         long double s = long double(1.0 / p);
  62.         long double kk = pow(x, s);
  63.         ll k = (ll)kk;
  64.         if (pw((k + 1), p) <= x)
  65.             k++;
  66.  
  67.         int r = 0;
  68.         if (p == 6)
  69.             r++;
  70.  
  71.         if (k > 1) {
  72.             ans += k;
  73.             //all del
  74.             for (int i = 2; i * i <= p; ++i) {
  75.                 if (p % i == 0) {
  76.                     b[i] += k;
  77.                     if (i * i != p)
  78.                         b[p / i] += k;
  79.                 }
  80.             }
  81.         }
  82.     }
  83.     for (int i = 0; i <= PMAX; ++i)
  84.         ans -= b[i];
  85.     return ans;
  86. }
  87.  
  88. void solve() {
  89.     ll L, R;
  90.     cin >> L >> R;
  91.    
  92.     ll ansL = k_in_x(L - 1), ansR = k_in_x(R);
  93.     cout << ansL << " " << ansR << endl;
  94.     cout << ansR - ansL << endl;
  95. }
  96.  
  97. int main() {
  98. #ifdef  _DEBUG
  99.     freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout);
  100. #endif
  101.     ios_base::sync_with_stdio(0);
  102.     cin.tie(0);
  103.    
  104.     int Q;
  105.     cin >> Q;
  106.     forn(q, Q)
  107.         solve();
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement