小杨有n个正整数a1,a2,a3...an,他想知道对于所有的i(1<=i<=n),是否存在两个正整数x和y,满足x^2+y^2=ai
输入
第一行包含一个正整数n,代表正整数数量 以后n行,每行包含一个正整数,代表ai
输出
对于每个正整数ai,如果存在两个正整数x和y满足x^2+y^2=ai,输出"Yes",否则输出"No"
样例
输入
2 5 4
输出
Yes No
提示
样例解释 对第一个正整数,存在1^2+2^2=5 答案为Yes
1<=n<=10,1<=ai<=10^6
———————————————————————————————————————————
代码:
#include<bits/stdc++.h>
using namespace std;
bool check(int x)
{
int y = sqrt(x);
return y*y==x;
}
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
int fl=0;
for(int i=1;i*i<n;i++)
{
int j=n-i*i;
if(check(j))fl=1;
}
if(fl)cout<<"Yes\n";
else cout<<"No\n";
}
return 0;
}