1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

int main() {
	int n; scanf("%d", &n);

	vector <int> amount(n * n + 1, 0);

	for(int a = 1; a <= n; ++a) for(int b = a; b <= n; ++b)
		if(a * a + b * b <= n * n) ++amount[a * a + b * b];
	
	ll ans = 0ll;
	for(int d = 1; d <= n; ++d) for(int h = 1; h <= n; ++h) if(d * d - h * h > 0)
		ans += (ll) amount[d * d - h * h];
	printf("%lld\n", ans);

	return 0;
}