description: 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
solution: #include <bits/stdc++.h>
  using namespace std;
  int T;
  long long n;
  long long cnt2;
  long long cnt3 = 0;
  long long cnt6 = 0;
  long long qpow(long long a, long long b) {
    if (b == 0) return 1;
    long long ans = qpow(a, b / 2);
    if ((b & 1))
      return ans * ans * a;
    else
      return ans * ans;
  }
  int main() {
    scanf("%d", &T);
    while (T--) {
      scanf("%lld", &n);
      cnt2 = cnt3 = cnt6 = 0;
      cnt2 = (long long)sqrt(n);
      while (qpow(cnt3, 3) <= n) {
        cnt3++;
      }
      cnt3--;
      while (qpow(cnt6, 6) <= n) {
        cnt6++;
      }
      cnt6--;
      printf("%lld\n", cnt2 + cnt3 - cnt6);
    }
    return 0;
  }
  