#include <bits/stdc++.h>
const int N = (int)1e5 + 228;
using namespace std;
int a1[N], a2[N], sz;
long long n, p[N], ans, nn;
void rec2(int pos, long long x, long long y) {
  if (pos == sz + 1) {
    long long z = nn / x / y;
    if ((x + y + z) % 2 == 0 && x > 1 && y > 1 && z > 1 && x + y - z > 0 &&
        y + z - x > 0 && x + z - y > 0) {
      ans++;
    }
    return;
  }
  for (int i = 0; i <= a2[pos]; i++) {
    rec2(pos + 1, x, y);
    y *= p[pos];
  }
}
void rec(int pos, long long x) {
  if (pos == sz + 1) {
    if (x > 1) rec2(1, x, 1);
    return;
  }
  for (int i = 0; i <= a1[pos]; i++) {
    a2[pos] = a1[pos] - i;
    rec(pos + 1, x);
    x *= p[pos];
  }
}
int main() {
  cin >> n;
  nn = n / 3;
  if (n % 3 != 0) {
    cout << 0 << endl;
    return 0;
  }
  n /= 3;
  for (long long i = 2; i * i <= n; i++) {
    if (n % i == 0) {
      p[++sz] = i;
      while (n % i == 0) {
        n /= i;
        a1[sz]++;
      }
    }
  }
  if (n != 1) {
    p[++sz] = n;
    a1[sz] = 1;
  }
  rec(1, 1);
  cout << ans << endl;
  return 0;
}
