#include <bits/stdc++.h>
using namespace std;
int wori;
long long n, m, s;
int judge1(int a, int b, int c) {
  int g = min(a, c);
  int th1 = s + (2 * g + 1) * (2 * b + 1) - (2 * a + 1) * (2 * b + 1);
  int th2 = 2 * c + 1;
  int vis = 1;
  if (th1 % th2 != 0) vis = 0;
  if (th1 < 0) vis = 0;
  int p = th1 / th2;
  if (p % 2 != 1) vis = 0;
  int d = (p - 1) / 2;
  if (2 * d + 1 > m) vis = 0;
  if (d <= b) vis = 0;
  if (vis == 1) {
    wori = 1;
    return d;
  }
  vis = 1;
  th1 = s - (2 * a + 1) * (2 * b + 1);
  th2 = (2 * c + 1) - (2 * g + 1);
  if (th1 == 0 && th2 == 0) {
    wori = b + 1;
    return b;
  }
  if (th1 < 0) vis = 0;
  if (th2 == 0) return -1;
  if (th1 % th2 != 0) vis = 0;
  p = th1 / th2;
  if (p % 2 != 1) vis = 0;
  d = (p - 1) / 2;
  if (d > b) vis = 0;
  if (2 * d + 1 > m) vis = 0;
  if (vis) {
    wori = 1;
    return d;
  } else
    return -1;
}
int main() {
  scanf("%I64d %I64d %I64d", &n, &m, &s);
  int i;
  int a, b, c;
  long long sum = 0;
  for (a = 0; 2 * a + 1 <= n; a++) {
    for (b = 0; 2 * b + 1 <= m; b++) {
      for (c = 0; 2 * c + 1 <= n; c++) {
        int d = judge1(a, b, c);
        if (d == -1) continue;
        long long g1 = max(a, c);
        long long g2 = max(b, d);
        sum += wori * (n + 1 - (2 * g1 + 1)) * (m + 1 - (2 * g2 + 1));
      }
    }
  }
  printf("%I64d\n", sum);
  return 0;
}
