GESP编程共123题,本题是整站第1412题,已经有人完成了本题,加油!
小杨有 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≤10^6。
【题目大意】
给定n,一共输入n个正整数a1~an。判断ai能否表示为两个正整数x和y的平方之和。
【考纲知识点】
开方运算、输入输出语句、循环
【解题思路】
1、按题目要求定义好需要的变量,并实现输入
2、通过while循环n次单独接收每次的数据ai,定义f1变量表示结果
3、在1~根号ai之间遍历数字i,此时i就是x
4、调用check()函数计算ai,剩余的数为ai-i*i,判断它能否被开方5、如果可以则f1=1,输出Yes,否则输出No
【参考程序】
本站题目仅供学习,GESP版权归CCF所有,如有侵权请联系删除。站长陈老师QQ及微信:208234。