func_code_string: #include <bits/stdc++.h>   using namespace std;   template <typename T1, typename T2>   istream& operator>>(istream& in, pair<T1, T2>& a) {     in >> a.first >> a.second;     return in;   }   template <typename T1, typename T2>   ostream& operator<<(ostream& out, pair<T1, T2> a) {     out << a.first <<     << a.second;     return out;   }   template <typename T, typename T1>   T amax(T& a, T1 b) {     if (b > a) a = b;     return a;   }   template <typename T, typename T1>   T amin(T& a, T1 b) {     if (b < a) a = b;     return a;   }   const long long INF = 1e18;   const int32_t M = 1e9 + 7;   const int32_t MM = 998244353;   const double inf = 2 * INF;   const long long N = 0;   vector<long long> tmp, v;   long long pw(long long a, long long p) {     long long result = 1;     while (p > 0) {       if (p & 1) result = a * result;       a = a * a;       p >>= 1;     }     return result;   }   long long sq(long long x) {     long long ans = sqrt(x);     while (ans * ans < x) {       ans++;     }     while (ans * ans > x) {       ans--;     }     return ans;   }   void precompute() {     for (long long i = 3; i < 61; i++) {       for (long long j = 2; j < INF; j++) {         if (pow(j, i) >= inf) {           break;         }         tmp.push_back(pw(j, i));       }     }     sort((tmp).begin(), (tmp).end());     (tmp).erase(unique((tmp).begin(), (tmp).end()), (tmp).end());     for (long long x : tmp) {       long long t = sq(x);       if (t * t == x) {         continue;       }       v.push_back(x);     }   }   void solve() {     long long n;     cin >> n;     long long ans = upper_bound((v).begin(), (v).end(), n) - v.begin();     long long x = sq(n) - 1;     ans += x;     ans = n - 1 - ans;     cout << ans <<   n ;   }   signed main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     precompute();     long long t = 1;     cin >> t;     while (t--) solve();     return 0;   }   