平方之和 题面描述 小杨有 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 样例解释 对于第一个正整数,存在 1×1+2×2=5,因此答案为 Yes。 数据范围


正确答案:n=int(input())\nfor _ in range(n):\na=int(input());ok=False\nx=1\nwhile x*x*2<=a:\ny=int((a-x*x)**0.5)\nif y>0 and x*x+y*y==a:ok=True\nx+=1\nprint('Yes' if ok else 'No')
试卷来源:202406 CCF-GESP编程能力等级认证C++二级真题