简单时间限制: 1000MS内存限制: 128MB分数:100OI排行榜得分:12(0.1*分数+2*难度)
描述
小杨有 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。
AC代码
#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;
}
标签:输出,平方,正整数,int,cin,c++,ai,题目,Yes
From: https://blog.csdn.net/2401_84325661/article/details/143652748