#include<bits/stdc++.h>
int isGood(int x){
return int(sqrt(x)) * int(sqrt(x)) == x;
}
const int N = 5000 * 5000 * 10;
int Z[N];
int main(){
using namespace std;
ios::sync_with_stdio(false), cin.tie(nullptr);
for(int b = 1;b <= 5000;b++)
for(int h = b;h <= 5000;h++)
Z[b * b + h * h] += 1;
int n;
cin >> n;
long long ans = 0;
for(int x = 2;x <= n;x++){
// szukasz (a, b, h): a^2 + b^2 + h^2 = x^2
// go over a i pózniej zapamiętaj gdzieś indziej (b, h)
for(int a = 1;a <= x;a++){
int z = x * x - a * a;
// b = a?
// kombinacji b^2 + h^2 = z
ans += Z[z];
}
}
cout << ans << '\n';
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #include<bits/stdc++.h> int isGood(int x){ return int(sqrt(x)) * int(sqrt(x)) == x; } const int N = 5000 * 5000 * 10; int Z[N]; int main(){ using namespace std; ios::sync_with_stdio(false), cin.tie(nullptr); for(int b = 1;b <= 5000;b++) for(int h = b;h <= 5000;h++) Z[b * b + h * h] += 1; int n; cin >> n; long long ans = 0; for(int x = 2;x <= n;x++){ // szukasz (a, b, h): a^2 + b^2 + h^2 = x^2 // go over a i pózniej zapamiętaj gdzieś indziej (b, h) for(int a = 1;a <= x;a++){ int z = x * x - a * a; // b = a? // kombinacji b^2 + h^2 = z ans += Z[z]; } } cout << ans << '\n'; return 0; } |
English