// Arup Guha
// Solution to UCF JV Practice 10/12/2013 Problem F: Crosses
// 10/17/2013

import java.util.*;

public class f {

	public static void main(String[] args) {

		Scanner stdin = new Scanner(System.in);
		int R = stdin.nextInt();
		int C = stdin.nextInt();
		int S = stdin.nextInt();

		long cnt = 0;

		// Brute force through a and b.
		for (int a=0; a<(R+1)/2; a++) {
			for (int b=0; b<(C+1)/2; b++) {

				// This is leftover area.
				int extra = S - (2*a+1)*(2*b+1);

				// We have too many, no solutions so stop.
				if (extra < 0) break;
				
				// This is perfect. So, c and d can be anything enclosed by a,b. Also, we must add in
				// the situation where c and d equal these values and a and b are smaller, then multiply
				// by all the different places we can put this cross.
				if (extra == 0) cnt = cnt + (((long)(a+1))*2*(b+1)-1L ) *placement(a,b,R,C);
				
				// Can't add odd area.
				else if (extra%2 != 0) continue;
				
				// Try adding to the ends of (a,b)
				else {

					// Just try to match one rectangle, due to symmetry.
					extra /= 2;
					
					// Make c > a and try each one.
					for (int c=a+1; c<(R+1)/2; c++) {
						
						// Here we might get a value for d.
						if (extra%(c-a) == 0) {

							// Here is how wide the extra portion hanging out is.
							int width = extra/(c-a);
							
							// Must be odd to work.
							if (width%2 == 1) {
								
								// Has to be smaller than b to work (otherwise, enveloping case, which we counted already)
								int d = (width-1)/2;
								if (d < b)
									cnt += placement(Math.max(a,c), Math.max(b,d), R, C);
							}
						}
					}

					// Try other case with d > b, c < a.
					for (int d=b+1; d<(C+1)/2; d++) {
						
						// Get an integer for c.
						if (extra%(d-b) == 0) {

							// This box's width.
							int width = extra/(d-b);
							
							// Must be odd to work.
							if (width%2 == 1) {
								
								// Finally c < a must be true.
								int c = (width-1)/2;
								if (c < a)
									cnt += placement(Math.max(a,c), Math.max(b,d), R, C);
							}
						}
					}
				}
			}
		}
		System.out.println(cnt);
	}

	// Not bad since shape is symmetric...returns the number of places a cross with max dimensions a,b
	// can be fit on a grid R x C.
	public static int placement(int a, int b, int R, int C) {
		return (R - 2*a)*(C - 2*b);
	}
}