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: /*
  ID: theclassictechno
  LANG: JAVA
  TASK: squaresandcubes
  */
  
  import java.util.*;
  
  import java.io.*;
  public class squaresandcubes {
  	static int SquareCube(long N)
      {
       
          int cnt = 0, i = 1;
       
          while ((int)(Math.pow(i, 6)) <= N) {
              ++cnt;
              ++i;
          }
       
          return cnt;
      }
   
      public static void main(String[] args) throws IOException {
      	//standard io
          BufferedReader fin = new BufferedReader(new InputStreamReader(System.in));
          PrintWriter fout = new PrintWriter(System.out);
          
          //file io
          //String file = "diamond";
  		
  //        BufferedReader fin = new BufferedReader(new FileReader(file+".in"));
  //       PrintWriter fout = new PrintWriter(new BufferedWriter(new FileWriter(file+".out")));
  //       
         
          StringTokenizer st = new StringTokenizer(fin.readLine());
   
          int t = Integer.parseInt(st.nextToken());
   
          //int[] x_coordinates = new int[n];
          int[] n = new int[t];
          int[] loves=new int[t];
          
          for (int i = 0; i < t; i++) {
          	st = new StringTokenizer(fin.readLine());
              n[i] = Integer.parseInt(st.nextToken());
              //System.out.println(n[i]);
          }
          
          int howManyS=0;int howManyC=0;  int both=0;
          for (int i = 0; i < t; i++) {
          	
  	        howManyS=(int)Math.sqrt(n[i]);
  	    	howManyC=(int)Math.cbrt(n[i])-1;
  	    	both=(SquareCube(n[i])-1) ;
  	    	loves[i]=howManyS+howManyC-both;
          }
          	
  //	        for (int j = 1; j <= n[i]; j++) {
  //	        	//int cube = n[i] * n[i] * n[i];
  //	        	//System.out.println(n[i]);
  //	        	//System.out.println("cbr"+Math.cbrt(j));
  //	        	//System.out.println("sqr"+Math.sqrt(j));
  //	        	
  //	            if (((Math.cbrt(j)) )% 1 == 0) {
  //	                loves[i]++;
  //	                //System.out.println(loves[i]);
  //	            }
  //	            
  //	            else if (((Math.sqrt(j)) %1 == 0)) {
  //	            	loves[i]++;
  //	            	//System.out.println(loves[i]);
  //	            }
  //	        }
  //        }
          
          for (int i = 0; i < n.length; i++) {
          	fout.println(loves[i]);
          }
          fin.close();
          fout.close();
   
      }
   
  }