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
37
38
39
40
#include <iostream>
#include <cmath>

using namespace std;

int main()
{
	unsigned short n_max_przekatna_akwarium;
	cin >> n_max_przekatna_akwarium;

	float przekatna;
	unsigned long long odp = 0;
	for (unsigned short a = 1; a < n_max_przekatna_akwarium; a++) {
		for (unsigned short b = a; b < sqrt(pow(n_max_przekatna_akwarium, 2) - pow(a, 2) - 1); b++) {
			for (unsigned short h = b; h < n_max_przekatna_akwarium; h++) {
				przekatna = sqrt(pow(a, 2) + pow(b, 2) + pow(h, 2));
				if (przekatna <= n_max_przekatna_akwarium) {
					if (ceilf(przekatna) == przekatna) {
						odp++;
						//cout << "Podstawa " << a << " na " << b << ", wysokosc " << h << ", przekatna " << przekatna << endl;
						if (h != a) {
							odp++;
							//cout << "+" << endl;
						}
						if (h != b && a != b) {
							odp++;
							//cout << "+" << endl;
						}
					}
				}
				else {
					break;
				}
			}
		}
	}

	cout << odp;
	return 0;
}