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而言中间的结果的顺序是可以调换的。