#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; } |
English