#include <bits/stdc++.h>
using namespace std;
long long int n;
vector<long long int> f;
void truli() {
  scanf("%I64d", &n);
  if (n % 3) {
    puts("0");
    return;
  }
  n /= 3;
  for (long long int i = 1; i <= n / i; i++) {
    if (n % i) continue;
    f.push_back(i);
    if (i * i != n) f.push_back(n / i);
  }
  sort(f.begin(), f.end());
  int ans = 0;
  for (int i = 0; i < f.size(); i++) {
    for (int j = 0; j <= i; j++) {
      if (f[i] % f[j]) continue;
      long long int ab = n / f[i], bc = f[j], ca = f[i] / f[j];
      long long int a = (ab + ca - bc);
      if (a & 1) continue;
      a /= 2;
      long long int b = ab - a;
      long long int c = ca - a;
      if (1 <= a && a <= b && b <= c) {
        if (a < b && b < c)
          ans += 6;
        else if (a == b && b == c)
          ans++;
        else
          ans += 3;
      }
    }
  }
  printf("%d\n", ans);
}
int main() {
  truli();
  return 0;
}
