#include <bits/stdc++.h>
using namespace std;
const int maxn = 5000;
int main(){
cin.tie(0)->sync_with_stdio(0);
int n;
cin>>n;
vector<int> ammounts((n+1)*(n+1)+ 1, 0);
vector<int> values;
for(int i = 1; i<=n; i++){
values.push_back(i*i);
}
for(int v1 : values){
for(int v2 : values){
if(v1 < v2) continue;
int tmp = v1 + v2;
if(tmp >= n*n) continue;
ammounts[tmp]++;
}
}
int out = 0;
for(int v1 : values){
for(int i = 1; i<n; i++){
int tmp = v1 - i*i;
if(tmp < 0) continue;
out += ammounts[tmp];
}
}
cout<<out<<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 32 33 34 35 36 37 38 39 40 41 | #include <bits/stdc++.h> using namespace std; const int maxn = 5000; int main(){ cin.tie(0)->sync_with_stdio(0); int n; cin>>n; vector<int> ammounts((n+1)*(n+1)+ 1, 0); vector<int> values; for(int i = 1; i<=n; i++){ values.push_back(i*i); } for(int v1 : values){ for(int v2 : values){ if(v1 < v2) continue; int tmp = v1 + v2; if(tmp >= n*n) continue; ammounts[tmp]++; } } int out = 0; for(int v1 : values){ for(int i = 1; i<n; i++){ int tmp = v1 - i*i; if(tmp < 0) continue; out += ammounts[tmp]; } } cout<<out<<endl; return 0; } |
English