4624: 【GESP2406二级】平方之和
内存限制:64 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:6
解决:3
题目描述
小杨有 个正整数 ,他想知道对于所有的 ,是否存在两个正整数 和 满足 。
输入
第一行包含一个正整数 ,代表正整数数量。 之后 行,每行包含一个正整数,代表 。
输出
对于每个正整数 ,如果存在两个正整数 和 满足 ,输出
Yes,否则输出 No。样例输入 复制
2
5
4
样例输出 复制
Yes
No
提示
对于第一个正整数,存在 ,因此答案为 Yes。
对于全部数据,保证有 。
#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;
}