#include <bits/stdc++.h> #define int long long using namespace std; unordered_map<int,int>r; const int MX = 5e3 + 9; int sq[MX]; signed main(){ int n; cin >> n; for(int i = 1; i <= n; ++i){ sq[i] = i*i; } for(int a = 1; a <= n; ++a){ for(int b = a+1; b <= n; ++b){ r[sq[b]-sq[a]]++; } } int score = 0; for(int a = 1; a <= n; ++a){ for(int b = a; sq[a]+sq[b] <= sq[n]; ++b){ score += r[sq[a]+sq[b]]; } } cout << score; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <bits/stdc++.h> #define int long long using namespace std; unordered_map<int,int>r; const int MX = 5e3 + 9; int sq[MX]; signed main(){ int n; cin >> n; for(int i = 1; i <= n; ++i){ sq[i] = i*i; } for(int a = 1; a <= n; ++a){ for(int b = a+1; b <= n; ++b){ r[sq[b]-sq[a]]++; } } int score = 0; for(int a = 1; a <= n; ++a){ for(int b = a; sq[a]+sq[b] <= sq[n]; ++b){ score += r[sq[a]+sq[b]]; } } cout << score; } |