描述
小杨有 n 个正整数 a1,a2,…,an,他想知道对于所有的 i(1≤i≤n),是否存在两个正整数 x 和 y 满足 x×x+y×y=ai。
输入描述
第一行包含一个正整数 n,代表正整数数量。
之后 n 行,每行包含一个正整数,代表 ai。
输出描述
对于每个正整数 ai,如果存在两个正整数 x 和 y 满足 x×x+y×y=ai,输出 Yes
,否则输出 No
。
样例输入 1
2 5 4
样例输出 1
Yes No
提示
数据范围与提示
对于第一个正整数,存在 1×1+2×2=5,因此答案为 Yes
。
对于全部数据,保证有 1≤n≤10,1≤ai≤106。
这个代码报了个TLE
求各位大佬指导一下吧 QAQ
#include <iostream>
using namespace std;
int main(){
int a,n,fl=0;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a;
for(int b=1;b<=a;b++){
for(int c=1;c<=a;c++){
if(b*b+c*c==a){
cout<<"Yes"<<endl;
fl=1;
if(fl==1)break;
else cout<<"No"<<endl;
}
}
}
}
return 0;
}