测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A32332. 平方之和

填空题 较易

题目描述

平方之和

题目描述
小杨有 n 个正整数a1,他想知道对于所有的 i ( i<= i <= n),是否存在两个正整数 x 和 y 满 ⾜ x * x + y * y = a i 。

输入格式

第一行包含一个正整数 n,代表正整数数量。

之后 n 行,每行包含一个正整数,代表 a i 。

输出格式

对于每个正整数 ai ,如果存在两个正整数 x 和 y 满⾜,输出Yes,否则输出No。

输入

2
5
4

输出

Yes
No

样例解释

对于第一个正整数,存在1*1+2*2=5,因此答案为Yes。

数据范围

对于全部数据,保证有  1<= n <= 10, 1<= a i <= 1000000

参考答案

#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"; } }
上一题 下一题