#include using namespace std; // Template // ============================================== // pbds // #include // #include // using namespace __gnu_pbds; // template> // using ordered_set = tree; // Debugging #ifdef LOCAL #include "debug.h" #else #define debug(...) #define see(x) #endif typedef long long ll; typedef vector VI; typedef vector VLL; typedef vector VB; typedef vector> VVI; typedef pair PI; typedef pair PLL; typedef vector> VPI; #define pb push_back #define ff first #define ss second #define mp make_pair #define all(a) a.begin(), a.end() #define revall(a) a.rbegin(), a.rend() #define loop(i, s, e) for (int i = s; i < e; ++i) #define inp(v) for (auto& x : v) cin >> x #define outp(v) for (int i = 0, n = v.size(); i < n; ++i) cout << v[i] << " \n"[i == n - 1] #define nl "\n" #define yep cout << "YES\n" #define nope cout << "NO\n" #define INF (int) 1e9 #define INFL (ll) 1e18 // #define MOD 998244353 #define MOD 1000000007 #define MAXN 100002 // ============================================= void solve(int tc) { ll a, b, s; cin >> a >> b >> s; ll ans = 0; loop(i, 1, s + 1) { for (ll x = 1; x * x <= i; ++x) { if (i % x) continue; ll y = i / x; ans += max(0LL, a - x + 1) * max(0LL, b - y + 1); if (x != y) ans += max(0LL, a - y + 1) * max(0LL, b - x + 1); } } cout << ans << nl; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int t = 1; // cin >> t; int x = t; while(t--) solve(x - t); #ifdef LOCAL cerr << "Execution time: " << 1000.f * clock() / CLOCKS_PER_SEC << " ms." << nl; #endif return 0; }