返回首页 返回题库

平方之和

C++ 入门 GESP二级真题 #循环#数学计算

题目描述

题面描述

小杨有n个正整数a1,a2,…,an,他想知道对于所有的 i (1 ≤ i ≤ n),是否存在两个正整数x和y满足

x * x + y * y =ai (x乘x+y乘y=ai) 。

输入格式

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

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

输出格式

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

样例1

输入:

3
5
4
1

输出:

Yes
No
No

样例解释

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

数据范围

对于全部数据,保证1 ≤ N ≤ 100,每个正整数x ≤ 1000。

时间限制

1.0 s

内存限制

512.0 MB

💡 查看提示(先自己想一想再看)
本题考察循环结构、条件判断和数学运算。解题思路是对每个输入的数x,遍历可能的a值,计算x - a²是否是完全平方数即可。注意a和b都必须是正整数,因此a的取值范围是1到sqrt(x-1)。
⚙ 开始做这道题 0 人做过 · 0 收藏 · 5 浏览

讨论(0)