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.io.*;
  import java.util.*;
  import java.math.BigInteger;
  public class Solution {
  	static PrintWriter out=new PrintWriter(System.out);
  	
  	
  	public static void main(String[] args) throws Exception {
  //		Scanner sc = new Scanner("hello.in");
  		Scanner sc=new Scanner(System.in);
  		int tc=sc.nextInt();
  		while(tc-->0) {
  			int n=sc.nextInt();
  			Set<Integer>hs=new HashSet<>();
  			for(int i=1;i*i<=n;i++) {
  				hs.add(i*i);
  			}
  			for(int i=1;i*i*i<=n;i++) {
  				hs.add(i*i*i);
  			}
  			out.println(hs.size());
  		}
  		out.close();
  	}
  	
  	static class Pair implements Comparable<Pair>{
  		int x;
  		int y;
  		public Pair(int x,int y) {
  			this.x=x;
  			this.y=y;
  		}
  		public int compareTo(Pair o) {
  			return this.x-o.x;
  		}
  		public String toString() {
  			return "("+this.x+","+this.y+")";
  		}
  		
  	}
  	static class Scanner {
  		StringTokenizer st;
  		BufferedReader br;
  		public Scanner(InputStream s) {
  			br = new BufferedReader(new InputStreamReader(s));
  		}
  		public Scanner(String file) throws FileNotFoundException {
  			br = new BufferedReader(new FileReader(file));
  		}
  		
  		public String next() throws IOException {
  			while (st == null || !st.hasMoreTokens())
  				st = new StringTokenizer(br.readLine());
  			return st.nextToken();
  		}
  		public int nextInt() throws IOException {
  			return Integer.parseInt(next());
  		}
  		public long nextLong() throws IOException {
  			return Long.parseLong(next());
  		}
  		public String nextLine() throws IOException {
  			return br.readLine();
  		}
  		public double nextDouble() throws IOException {
  			return Double.parseDouble(next());
  		}
  		public boolean ready() throws IOException {
  			return br.ready();
  		}
  		public int[] nextIntArr(int n) throws IOException{
  			int arr[]=new int[n];
  			for(int i=0;i<n;i++)arr[i]=nextInt();
  			return arr;
  		}
  		public BigInteger BigInteger(String s) throws IOException{
  			BigInteger a=new BigInteger(s);
  			return a;
  		}
  	}
  }