fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define vt vector<ll>
  5. #define vvt vector<vt>
  6. #define all(a) a.begin(), a.end()
  7. #define pb push_back
  8.  
  9. void print(vt &a){
  10. for(auto val: a)
  11. cout<<val<<" ";
  12. cout<<endl;
  13. }
  14.  
  15. void read(vt &a){
  16. for(int i=0;i<a.size();i++)
  17. cin>>a[i];
  18. }
  19. ll f(ll a, ll b, ll n){
  20. return ((n-a)/b)+ 1;
  21. }
  22. void solve(){
  23. ll n;
  24. cin>>n;
  25. ll ans = 0;
  26.  
  27. unordered_map<ll,ll>count;
  28. for(ll w=1;w<=n;w++){
  29. for(ll x=1;x<=n;x++){
  30. ll num=w;
  31. ll den=x;
  32. num%=den;
  33. if(num==0){
  34. count[0]++;
  35. continue;
  36. }
  37. ll g=__gcd(num, den);
  38. num/=g;
  39. den/=g;
  40. count[num + (n+1)*den]++;
  41.  
  42. }
  43. }
  44.  
  45. for(auto val: count){
  46. ll a = val.first%(n+1);
  47. ll b = val.first/(n+1);
  48.  
  49. a = b-a;
  50. ans += val.second * (count[a + (n+1)*b]);
  51.  
  52.  
  53. }
  54.  
  55.  
  56.  
  57.  
  58.  
  59. cout<<ans<<endl;
  60. }
  61.  
  62. int main() {
  63. // your code goes here
  64. ll t;
  65.  
  66. cin>>t;
  67. while(t--){
  68. solve();
  69. }
  70. return 0;
  71. }
Success #stdin #stdout 0s 5300KB
stdin
1
7
stdout
355