魔法棒
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
64bit IO Format: %lld

题目描述

\hspace{15pt}在神奇的魔法大陆,小坤初始拥有一根魔法棒,它可以进行任意次(也可以不进行)以下操作。
\hspace{23pt}\bullet\,选择一根魔法棒,将其分裂为任意一个正平方数数量的魔法棒;例如,现在有 1 根魔法棒,选择一个平方数 9 之后变成了 9 根魔法棒。
\hspace{15pt}小坤来请求你的帮助,他想知道自己能否通过这样的分裂魔法获得恰好 x 根魔法棒。

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leqq T\leqq 2 \times 10^5\right) 代表数据组数,每组测试数据描述如下:
\hspace{15pt}在一行上输入一个整数 x \left(1\leqq x\leqq 10^{18}\right) 代表小坤想要获得的魔法棒数量。

输出描述:

\hspace{15pt}对于每一组测试数据,新起一行。如果小坤可以获得恰好 x 根魔法棒,则输出 \rm Yes,否则输出 \rm No
示例1

输入

复制
2
2
12

输出

复制
No
Yes

说明

\hspace{15pt}对于第二组测试数据,先将一根魔法棒分裂为 9 根,再任取一根魔法棒分裂为 4 根,总共得到 12 根魔法棒。