import java.util.Scanner;

/**
 * @author supermejane
 * @date 2025/10/3
 * @description 牛客算法学习篇-算法入门   BGN7魔法棒
 */
public class Main {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        while (n-- > 0) {
            Long a = sc.nextLong();
            System.out.println(isMagic(a) ? "Yes" : "No");
        }
    }
	
  	//使用递归,需要注意输入的数字为1 - 10^18, 需要使用Long
    public static boolean isMagic(Long a) {
        int half = (int)Math.sqrt(a);
        if ((long) half * half == a) return true;
        //只要有一个可行就可以, 注意i > 1不能为1
        for (int i = (int) Math.sqrt(a); i > 1; i--) {
            if (isMagic(a + 1 - (long) i * i)) return true;
        }
        return false;
    }
}
//题目的意思是n' = n - 1 + m * m有限轮迭代之后变成x, 可以看出迭代的顺序是无关的, 就是对于一个可行的序列1 -> 4 -> 12而言中间的结果的顺序是可以调换的。