#include <bits/stdc++.h>
using namespace std;
inline long Length(long left, long right) { return right - left + 1; }
template <class T, class V>
bool Contains(const T& uoset, const V& value) {
  return uoset.find(value) != uoset.end();
}
using TPair = pair<long, long>;
inline bool BySecond(const TPair& left, const TPair& right) {
  return left.second < right.second;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  long T;
  cin >> T;
  if (T > 0)
    for (long i = 0; i <= T - 1; ++i) {
      long n;
      cin >> n;
      unordered_set<long> nums;
      long sq = 1;
      while (sq * sq <= n) {
        nums.insert(sq * sq);
        sq += 1;
      }
      long cu = 1;
      while (cu * cu * cu <= n) {
        nums.insert(cu * cu * cu);
        cu += 1;
      }
      cout << nums.size() << endl;
    }
  return 0;
}

### Prompt

Please create a solution in CPP to the following problem:

Polycarp likes squares and cubes of positive integers. Here is the beginning of the sequence of numbers he likes: 1, 4, 8, 9, ....

For a given number n, count the number of integers from 1 to n that Polycarp likes. In other words, find the number of such x that x is a square of a positive integer number or a cube of a positive integer number (or both a square and a cube simultaneously).

Input

The first line contains an integer t (1 ≤ t ≤ 20) — the number of test cases.

Then t lines contain the test cases, one per line. Each of the lines contains one integer n (1 ≤ n ≤ 10^9).

Output

For each test case, print the answer you are looking for — the number of integers from 1 to n that Polycarp likes.

Example

Input


6
10
1
25
1000000000
999999999
500000000


Output


4
1
6
32591
32590
23125

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
inline long Length(long left, long right) { return right - left + 1; }
template <class T, class V>
bool Contains(const T& uoset, const V& value) {
  return uoset.find(value) != uoset.end();
}
using TPair = pair<long, long>;
inline bool BySecond(const TPair& left, const TPair& right) {
  return left.second < right.second;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  long T;
  cin >> T;
  if (T > 0)
    for (long i = 0; i <= T - 1; ++i) {
      long n;
      cin >> n;
      unordered_set<long> nums;
      long sq = 1;
      while (sq * sq <= n) {
        nums.insert(sq * sq);
        sq += 1;
      }
      long cu = 1;
      while (cu * cu * cu <= n) {
        nums.insert(cu * cu * cu);
        cu += 1;
      }
      cout << nums.size() << endl;
    }
  return 0;
}

```