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: import java.util.*;
  import java.lang.*;
  import java.io.*;
   public class Solution{
  
      public static ArrayList<Integer> al = new ArrayList<>();
      public static  int getCount(int n){
          int count=0;
          for(int i=1;i<=(Math.sqrt(n));i++){
              if(Math.floor(Math.sqrt(i*i))==Math.ceil(Math.sqrt(i*i))){
                  if(Math.floor(Math.cbrt(i*i))==Math.ceil(Math.cbrt(i*i))){
                      count++;
                      //cout<<i<<" ";
                  }
  
              }
          }
          return count;
      }
      public static void main (String[] args) throws java.lang.Exception {
  
          int t = sc.nextInt();
  
          while(t-->0){
              int n = sc.nextInt();
              System.out.println((int)Math.sqrt(n)+(int)Math.cbrt(n)-getCount(n));
  
          }
      }
      // Fast Reader Class
      public static FastReader sc = new FastReader();
      public static BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
      static class FastReader {
          BufferedReader br;
          StringTokenizer st;
          public FastReader() { br = new BufferedReader(new InputStreamReader(System.in));}
          String next() { while (st == null || !st.hasMoreElements()) { try { st = new StringTokenizer(br.readLine()); } catch (IOException e) { e.printStackTrace(); } }return st.nextToken(); }
          int nextInt() {
              return Integer.parseInt(next());
          }
          long nextLong() {
              return Long.parseLong(next());
          }
          double nextDouble() {
              return Double.parseDouble(next());
          }
          String nextLine() { String str = ""; try { str = br.readLine(); } catch (IOException e) { e.printStackTrace(); }return str; }
      }
  }
  //    int n = sc.nextInt(), p = sc.nextInt(), k = sc.nextInt();
  //            if(p%k<=(n-1)%k){
  //                    n--;
  //                    long ans = (p%k)*((n+k)/k)-((p%k-1)*(p%k))/(2*k);
  //                    System.out.println(ans);
  //                    ans+=(p-(p%k))/k+1;
  //                    System.out.println(ans);
  //                    }else{
  //                    long ans=0;
  //                    n--;
  //                    ans+=(n%k)*(n+k)/k;
  //                    ans+=(p%k-n%k-1)*(((n+k)/k)-1);
  //                    ans+=(p-(p%k))/k+1;
  //                    System.out.println(ans);
  //                    }