四平方和
代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n;
cin >> n;
int temp;
// 字典序从小到大枚举a,b,c.
for (int i = 0; i * i < n; i++)
for (int j = i; j * j < n; j++)
for (int k = j; k * k < n; k++)
{
// 优化:d不必再枚举,可以通过计算得到d的值,如果计算得到的temp开方后是整数,就说明d存在,否则不存在。
temp = n - i * i - j * j - k * k;
if ((int)pow((int)pow(temp, 0.5), 2) == temp) // 判断temp开方后是否为整数
{
cout << i << ' ' << j << ' ' << k << ' ' << (int)(pow(temp, 0.5)) << "\n"; // 如果是,则返回答案,并终止程序
return 0;
}
}
return 0;
}