#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:128000000")
using namespace std;
const long double PI = 3.14159265358979323846;
const long double gammama = 0.57721566490153286060;
const long double eps = 1e-5;
const int INF = 1000 * 1000 * 10 + 10;
const int N = 1000 * 10000 + 10;
int main() {
  long long n;
  cin >> n;
  if (n % 3 != 0) {
    cout << 0 << endl;
    return 0;
  }
  n /= 3;
  long long up = sqrt((double)n) + 30;
  vector<long long> d;
  for (long long i = 1; i < up; ++i) {
    if (n % i == 0) d.push_back(i);
  }
  long long res = 0;
  for (int i = 0; i < d.size(); ++i) {
    for (int j = 0; j < i; ++j) {
      long long d1 = d[i];
      long long d2 = d[j];
      long long d3 = n / d1 / d2;
      if (d1 * d2 * d3 == n) {
        if ((d3 < d2) && (d2 + d3 > d1) && ((d1 + d2 + d3) % 2 == 0)) res += 6;
      }
    }
    long long d1 = d[i];
    long long d2 = d[i];
    long long d3 = n / d1 / d2;
    if ((d1 * d2 * d3 == n) && ((d1 + d2 + d3) % 2 == 0)) {
      if (d3 == d1)
        ++res;
      else if (d3 < d1)
        res += 3;
      else if (d1 + d2 > d3)
        res += 3;
    }
  }
  cout << res << endl;
  return 0;
}
