#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef vector<int> vi; typedef vector<ll> vll; typedef vector<vi> vvi; typedef vector<bool> vb; #define eb emplace_back #define pb push_back #define loop(i, a, b) for (int i = a; i < b; i++) #define rloop(i, a, b) for (int i = a; i >= b; i--) #define all(x) (x).begin(), (x).end() int main() { cin.tie(0)->sync_with_stdio(false); int n; cin >> n; int nKwadrat = n * n; vi wysplszer(nKwadrat + 1, 0); loop(i, 1, n + 1) { int aKw = i * i; loop(j, i, n + 1) { int abkw = aKw + (j * j); if (abkw <= nKwadrat) wysplszer[abkw]++; } } ll w = 0ll; loop(i, 1, n + 1) { int przekKw = i * i; loop(j, 1, min(i, n + 1)) { int reszta = przekKw - j * j; if (reszta <= nKwadrat && reszta >= 0) w += (ll)wysplszer[reszta]; } } cout << w; 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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef vector<int> vi; typedef vector<ll> vll; typedef vector<vi> vvi; typedef vector<bool> vb; #define eb emplace_back #define pb push_back #define loop(i, a, b) for (int i = a; i < b; i++) #define rloop(i, a, b) for (int i = a; i >= b; i--) #define all(x) (x).begin(), (x).end() int main() { cin.tie(0)->sync_with_stdio(false); int n; cin >> n; int nKwadrat = n * n; vi wysplszer(nKwadrat + 1, 0); loop(i, 1, n + 1) { int aKw = i * i; loop(j, i, n + 1) { int abkw = aKw + (j * j); if (abkw <= nKwadrat) wysplszer[abkw]++; } } ll w = 0ll; loop(i, 1, n + 1) { int przekKw = i * i; loop(j, 1, min(i, n + 1)) { int reszta = przekKw - j * j; if (reszta <= nKwadrat && reszta >= 0) w += (ll)wysplszer[reszta]; } } cout << w; return 0; } |