#include <bits/stdc++.h>
using namespace std;
vector<int> divisors[62501];
int main() {
  int n, m, s;
  scanf("%d %d %d", &n, &m, &s);
  if (s % 2 == 0) {
    printf("0\n");
    return 0;
  }
  for (int i = 1; i <= 62500; i++) {
    for (int j = 1; j * i <= 62500; j++) {
      divisors[j * i].push_back(i);
    }
  }
  long long answer = 0;
  for (int x = 0; 2 * x + 1 <= n; x++) {
    if (s % (2 * x + 1) == 0 && s / (2 * x + 1) <= m) {
      int y = (s / (2 * x + 1) - 1) / 2;
      answer += (long long)(n - 2 * x) * (long long)(m - 2 * y) *
                (2 * (long long)(x + 1) * (long long)(y + 1) - 1);
    }
  }
  for (int x = 1; 2 * x + 1 <= n; x++) {
    for (int y = 1; 2 * y + 1 <= m; y++) {
      int leftover = ((2 * x + 1) * (2 * y + 1) - s);
      if (leftover > 0 && leftover % 4 == 0) {
        int small = (leftover + 4 * y - 1) / (4 * y);
        int large = x;
        int number = upper_bound(divisors[leftover / 4].begin(),
                                 divisors[leftover / 4].end(), large) -
                     lower_bound(divisors[leftover / 4].begin(),
                                 divisors[leftover / 4].end(), small);
        answer += max(2 * (long long)number * (long long)(n - 2 * x) *
                          (long long)(m - 2 * y),
                      0ll);
      }
    }
  }
  printf("%I64d\n", answer);
}
