#include <bits/stdc++.h>
using namespace std;
typedef vector<int> VI;
typedef pair <int,int> ii;
typedef long long LL;
typedef pair <LL,LL> pll;
#define pb push_back
const int INF = 2147483647;
const int N = 25000005;
int i, a, b, c, a2, b2, c2, n, n2, res, tab[N];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n;
n2 = n * n;
for (a=1;a<=n;a++) {
a2 = a * a;
for (b=1;b<=n;b++) {
b2 = b * b;
if (a2 + b2 > n2) break;
tab[a2 + b2]++;
if (a == b) tab[a2 + b2]++;
}
}
for (a=1;a<=n;a++) for (b=a+1;b<=n;b++) res += tab[b * b - a * a];
cout << res / 2 << endl;
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 | #include <bits/stdc++.h> using namespace std; typedef vector<int> VI; typedef pair <int,int> ii; typedef long long LL; typedef pair <LL,LL> pll; #define pb push_back const int INF = 2147483647; const int N = 25000005; int i, a, b, c, a2, b2, c2, n, n2, res, tab[N]; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n; n2 = n * n; for (a=1;a<=n;a++) { a2 = a * a; for (b=1;b<=n;b++) { b2 = b * b; if (a2 + b2 > n2) break; tab[a2 + b2]++; if (a == b) tab[a2 + b2]++; } } for (a=1;a<=n;a++) for (b=a+1;b<=n;b++) res += tab[b * b - a * a]; cout << res / 2 << endl; return 0; } |
English