#include <bits/stdc++.h>
using namespace std;
int F(int n) {
  int ret = 1;
  for (int i = 1; i <= n; ++i) ret *= i;
  return ret;
}
int ok(long long x, long long y, long long z) {
  long long a = z + y - x, b = z - y + x, c = -z + y + x;
  if (a % 2 == 0 && b % 2 == 0 && c % 2 == 0) {
    if (a > 0 && b > 0 && c > 0) {
      vector<int> vec;
      vec.push_back(a);
      vec.push_back(b);
      vec.push_back(c);
      sort(vec.begin(), vec.end());
      int ret = F(3), num = 1;
      for (int i = 1; i < vec.size(); ++i) {
        if (vec[i] == vec[i - 1]) {
          num++;
        } else
          ret /= F(num), num = 1;
      }
      return ret / F(num);
    }
  }
  return 0;
}
int main() {
  long long n;
  while (cin >> n) {
    long long ans(0);
    if (n % 3 != 0) {
      puts("0");
      continue;
    }
    n /= 3;
    for (long long x = 1; x * x * x <= n; ++x) {
      if (n % x == 0) {
        long long yz = n / x;
        for (long long y = (long long)sqrt(double(yz)) + 10; y >= 1; --y) {
          if (yz % y == 0) {
            long long z = yz / y;
            if (!((z < (x + y)))) break;
            if (!(x <= y && y <= z)) continue;
            ans += ok(x, y, z);
          }
        }
      }
    }
    cout << ans << endl;
  }
  return 0;
}
