4624: 【GESP2406二级】平方之和
内存限制:64 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:1
解决:1
题目描述
小杨有 个正整数 ,他想知道对于所有的 ,是否存在两个正整数 和 满足 。
输入
第一行包含一个正整数 ,代表正整数数量。 之后 行,每行包含一个正整数,代表 。
输出
对于每个正整数 ,如果存在两个正整数 和 满足 ,输出
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"; } }