#include <bits/stdc++.h>
using namespace std;
const int N = int(1e7);
int p[N / 10], pn;
long long n;
bool u[N + 10];
int c[40], d[40], cn, d2[40];
int ans;
long long val2;
long long A, B, C, second;
void rec2(int x, long long val, long long val1) {
  if (x == cn + 1) {
    val2 = n / (val * val1);
    if (val > 1 && val2 > 1) {
      second = (val + val1 + val2);
      if (second % 2 == 0) {
        second /= 2;
        if (second > val && second > val1 && second > val2) {
          ans++;
        }
      }
    }
    return;
  }
  for (int i = 0; i <= d2[x]; i++) {
    rec2(x + 1, val, val1);
    val *= c[x];
  }
}
void rec(int x, long long val) {
  if (x == cn + 1) {
    if (val > 1) rec2(1, 1, val);
    return;
  }
  for (int i = 0; i <= d[x]; i++) {
    d2[x] = d[x] - i;
    rec(x + 1, val);
    val *= c[x];
  }
}
void tup() {
  for (int a = 1; a <= n; a++) {
    for (int b = 1; b <= n; b++) {
      for (int c = 1; c <= n; c++) {
        if ((a + b) * (b + c) * (c + a) == n) {
          cerr << a << " " << b << " " << c << endl;
        }
      }
    }
  }
}
int main() {
  for (int i = 4; i <= N; i += 2) u[i] = 1;
  int K = int(sqrt(N + 2.0));
  for (int i = 3; i <= K; i += 2)
    if (!u[i]) {
      for (int j = i * i; j <= N; j += (i + i)) u[j] = 1;
    }
  for (int i = 2; i <= N; i++) {
    if (!u[i]) p[++pn] = i;
  }
  cin >> n;
  if (n % 3) {
    cout << 0;
    return 0;
  }
  n /= 3;
  long long cur = n;
  for (int i = 1; i <= pn; i++) {
    if (n % p[i] == 0) {
      c[++cn] = p[i];
      while (n % p[i] == 0) {
        n /= p[i];
        d[cn]++;
      }
    }
  }
  if (n > 1) {
    c[++cn] = n;
    d[cn] = 1;
  }
  n = cur;
  rec(1, 1);
  cout << ans;
  return 0;
}
