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.*;
  
  public class QB {
  
  	// There is no lower_bound and upper_bound like the one available in c++
  	// But there is one for TreeMap, SortedSet -> ceiling and floors in Collections package
  	// Learn for it.
  	private static final long UPPER_BOUND = 1000000000;
  	private static final SortedSet<Long> list = new TreeSet<>();
  
  	private static void setup() {
  		for(long i=1;i*i<=UPPER_BOUND || i*i*i<=UPPER_BOUND;++i) {
  			if(i*i<=UPPER_BOUND) {
  				list.add(i*i);
  			}
  			if(i*i*i<=UPPER_BOUND && i*i!=i*i*i) {
  				list.add(i*i*i);
  			}
  		}
  		// You can also use list and stream to get distinct() elements - list.stream().distinct().collect(Collectors::list);
  		// Collections.sort(list);
  	}
  
  	public static void main(String[] args) {
  		Scanner in = new Scanner(System.in);
  		setup();
  		int test = in.nextInt();
  		while(test-->0) {
  			long n = in.nextLong();
  			int answer = 0;
  			for(Long i:list) {
  				if(i<=n) {
  					answer++;
  				} else {
  					break;
  				}
  			}
  			System.out.println(answer);
  		}
  	}
  }
  