func_code_string: #include <bits/stdc++.h>   using namespace std;   long long n;   long long arr[100005];   int c5;   int find(long long a, long long b, long long c) {     long long arr[4];     arr[0] = a;     arr[1] = b;     arr[2] = c;     sort(arr, arr + 3);     if (arr[0] < arr[1] && arr[1] < arr[2])       return 6;     else if (arr[0] == arr[1] && arr[1] < arr[2])       return 3;     else if (arr[0] < arr[1] && arr[1] == arr[2])       return 3;     else       return 1;   }   int main() {     cin >> n;     if (n % 6 != 0) {       printf( 0 n );       return 0;     }     n /= 3;     for (long long x = 1; x * x <= n; x++) {       if (n % x == 0) {         arr[c5++] = x;         if (x * x != n) arr[c5++] = n / x;       }     }     sort(arr, arr + c5);     long long x, y, z;     int ans = 0, cnt = 0;     long long a, b, c;     for (int i = 0; i < c5; i++) {       x = arr[i];       for (int j = i; j < c5 && arr[i] * arr[j] * arr[j] <= n; j++) {         if (n % (arr[i] * arr[j]) == 0) {           y = arr[j];           z = n / (arr[i] * arr[j]);           if (x <= y <= z) {             if (x - y + z > 0 && y - x + z > 0 && y - z + x > 0 &&                 (x - y + z) % 2 == 0) {               cnt++;               a = (x - y + z) / 2;               b = (y - x + z) / 2;               c = (y - z + x) / 2;               ans += find(a, b, c);             }           }         }       }     }     printf( %d n , ans);     return 0;   }   