#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> pii;
const int N = 5e3+10;
const ll INF = 1e18;
ll n, cnt[3*N*N+100];
void solve() {
cin>>n;
ll ans = 0;
for (ll a=1; a<=n; ++a) {
for (ll b=a; b<=n; ++b) {
++cnt[a*a+b*b];
}
}
// a*a+b*b+h*h = r*r <= n*n
// a*a+b*b = r*r-h*h
for (ll r=1; r<=n; ++r) {
for (int h=1; h<=n; ++h) {
if (r*r - h*h >= 0) ans += cnt[r*r-h*h];
}
} cout<<ans<<"\n";
}
int main() {
int t=1; //cin>>t;
while (t--) solve();
}
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 | #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll, ll> pii; const int N = 5e3+10; const ll INF = 1e18; ll n, cnt[3*N*N+100]; void solve() { cin>>n; ll ans = 0; for (ll a=1; a<=n; ++a) { for (ll b=a; b<=n; ++b) { ++cnt[a*a+b*b]; } } // a*a+b*b+h*h = r*r <= n*n // a*a+b*b = r*r-h*h for (ll r=1; r<=n; ++r) { for (int h=1; h<=n; ++h) { if (r*r - h*h >= 0) ans += cnt[r*r-h*h]; } } cout<<ans<<"\n"; } int main() { int t=1; //cin>>t; while (t--) solve(); } |
English