参考程序:
#include <bits/stdc++.h>
using namespace std;// 判断一个数是否为完全平方数(返回 true 表示是)
bool check(int x) {int y = sqrt(x); // 求平方根return y * y == x; // 如果 y*y 恰好等于 x,说明 x 是完全平方数
}int main() {int t;cin >> t; // 读入测试数据个数 nwhile (t--) {int n;cin >> n; // 读入一个 a_iint fl = 0; // 标记变量,fl=1 表示找到了答案// 枚举 x^2,从 1 到 sqrt(n),然后看看 n - x^2 是否也是完全平方数for (int i = 1; i * i < n; i++) {int j = n - i * i;if (check(j)) fl = 1; // 若 j 是平方数,说明存在 x^2 + y^2 = n}//cout << (fl ? "Yes" : "No") << '\n'; if (fl)cout << "Yes\n";elsecout << "No\n";}
}