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: /*
    Challenge 1: Newbie to CM in 1year (Dec 2021 - Nov 2022)   🔥 5* Codechef
    Challenge 2: CM to IM in 1 year (Dec 2022 - Nov 2023)    🔥🔥 6* Codechef
    Challenge 3: IM to GM in 1 year (Dec 2023 - Nov 2024)  🔥🔥🔥 7* Codechef
    Goal: Become better in CP!
    Key: Consistency!
  */
  
  import java.util.*;
  import java.io.*;
  import java.math.*;
  
  public class Coder {
  
    static StringBuffer str=new StringBuffer();
    static long b;
  
    static void solve(){
  
      // long ans=(long)(Math.floor(Math.sqrt(b)) - Math.ceil(Math.sqrt(1)) + Math.floor(Math.cbrt(b)) -
      //             Math.ceil(Math.cbrt(1)) + 1);
      // str.append(ans).append("\n");
  
      long acrt=1, bcrt=(long)Math.cbrt(b);
      Set<Long> set=new HashSet<>();
      for (long i = acrt; i <= bcrt; i++)
              if (i * i * i >= 1 && i * i * i <= b)
                  set.add(i*i*i);
  
      long asrt=1, bsrt=(long)Math.sqrt(b);
      for (long i = asrt; i <= bsrt; i++)
              if (i * i  >= 1 && i * i <= b)
                  set.add(i*i);
  
      str.append(set.size()).append("\n");
    }
    public static void main(String[] args) throws java.lang.Exception {
      BufferedReader bf;
      PrintWriter pw;
      boolean lenv=false;
      if(lenv){
        bf = new BufferedReader(
                            new FileReader("input.txt"));
        pw=new PrintWriter(new
              BufferedWriter(new FileWriter("output.txt")));
      }else{
        bf = new BufferedReader(new InputStreamReader(System.in));
        pw = new PrintWriter(new OutputStreamWriter(System.out));
      }
      
      int q = Integer.parseInt(bf.readLine().trim());
      while (q-- > 0) {
          b=Long.parseLong(bf.readLine().trim());
          solve();
      }
      pw.println(str);
      pw.flush();
      // System.outin.print(str);
    }
  }