#include <bits/stdc++.h>
using namespace std;
int get(long long a, long long b, long long c, long long n) {
  long long t = a + b + c;
  n *= 3;
  if (t * t * t - n - a * a * a - b * b * b - c * c * c) return 0;
  if (a == b && b == c) return 1;
  if (a == b || b == c || a == c) return 3;
  return 6;
}
int isgen(long long n) {
  long long ans = sqrt(n + 0.0);
  if (ans * ans == n) return ans;
  return 0;
}
int main() {
  long long n;
  long long ans = 0;
  long long i, j;
  cin >> n;
  if (n % 3) {
    puts("0");
    return 0;
  }
  n /= 3;
  long long k;
  long long ii;
  for (ii = 1; ii * ii * ii * 2 <= n; ii++)
    ;
  for (k = 2; k <= ii + ii; k++)
    if (n % k == 0) {
      long long tt = n / k, t;
      for (i = 1; i + i <= k && i * i * i * 8 <= n; i++) {
        j = k - i;
        if (j * j * j * 2 > n) continue;
        t = tt;
        t -= i * j;
        long long ca;
        ca = isgen(k * k + 4 * t);
        if (ca && (ca - k) % 2 == 0 && (j << 1) <= (ca - k))
          ans += get(i, j, (ca - k) / 2, n);
      }
    }
  cout << ans << endl;
}
