#include <bits/stdc++.h>
using namespace std;
int main(void) {
  long long n;
  cin >> n;
  if (n % 3 != 0) {
    cout << 0 << endl;
    return 0;
  }
  n /= 3;
  vector<int> d;
  for (int i = 2; (long long)i * i <= n; ++i) {
    if (n % i == 0) {
      d.push_back(i);
    }
  }
  long long res = 0LL;
  set<pair<long long, long long> > S;
  for (int i = 0; i < ((int)((d).size())); ++i) {
    long long d1 = d[i], n1 = n / d1;
    for (int j = i; j < ((int)((d).size())); ++j) {
      long long d2 = d[j];
      if (d2 * d2 > n1) {
        break;
      }
      if (n1 % d2 != 0) {
        continue;
      }
      long long d3 = n1 / d2;
      if ((d1 + d2 + d3) % 2 == 0 && d1 + d2 > d3) {
        long long A = (d1 + d2 - d3) / 2, B = (d1 - d2 + d3) / 2,
                  C = (-d1 + d2 + d3) / 2;
        int ile = 3;
        if (A < B && B < C) {
          ile = 6;
        } else if (A == B && A == C) {
          ile = 1;
        }
        if (S.insert(make_pair(A, B)).second) {
          res += ile;
        }
      }
    }
  }
  cout << res << endl;
  return 0;
}
