原题目:
代码:
ll ans1 = 0,ans2=0,flag;
void solve() {
ll i, j,k,x,y,z,p,q,u,v;
ll N = 10000000;
u = 0;
for (i = 1; i <= N; i++) {
Map4[i * i] = 1;
}
for (i = 2;1; i++) {
if(i%100==0)
printf("%lld\n", i);
if (i % 2 == 0)j = 2;
else j = 1;
for (; j < i; j += 2) {
x = (i * i + j * j) / 2;
y = i * i - x;
if (x <= y)break;
for (k = sqrt(x) + 1;; k++) {
z = k * k - x;
if (y <= z)break;
if (Map4[x - z] && Map4[y + z] && Map4[y - z]) {
printf("%lld %lld %lld %lld\n", x, y, z, x + y + z);
return;
}
}
}
}
printf("%lld\n", ans1);
}