#include using namespace std; using ll = long long; using ld = long double; using pll = pair; using pld = pair; using vll = vector; using vld = vector; using vpll = vector; using vpld = vector; using vvll = vector; using vvld = vector; template using min_queue = priority_queue, greater>; template using max_queue = priority_queue, less>; #define rep(i, a, b) for(ll i = (ll)a; i < (ll)b; i++) #define irep(i, v) for(auto i = (v).begin(); i != (v).end(); i++) #define SZ(v) (ll)(v).size() #define ALL(v) (v).begin(), (v).end() #define SHIFT(a) (1LL << (ll)a) #define endl '\n' const ll INF = 1e18; const ll MOD = 1e9 + 7; const ld EPS = 1e-10; const ld PI = M_PI; ll power(ll x, ll y){ ll res = 1; while(y > 0){ if(y & 1){ res *= x; } x *= x; y >>= 1; } return res; } bool in_grid(ll x, ll y, ll h, ll w){ return (0 <= x && x < h && 0 <= y && y < w); } template void pvec(vector &vec){ for(ll i = 0; i < (ll)vec.size(); i++){ if(i){ cout << " "; } cout << vec[i]; } cout << endl; } template void ppai(pair &pai){ cout << pai.first << " " << pai.second << endl; } template void pvvec(vector> &vec){ for(ll i = 0; i < (ll)vec.size(); i++){ for(ll j = 0; j < (ll)vec[i].size(); j++){ if(j){ cout << " "; } cout << vec[i][j]; } cout << endl; } } template void asort(vector &vec){ sort(ALL(vec)); } template void rsort(vector &vec){ sort(ALL(vec)); reverse(ALL(vec)); } //using mint = modint; int main(){ cin.tie(nullptr); ios::sync_with_stdio(false); srand((unsigned)time(NULL)); cout << fixed << setprecision(20); ll a, b, s; cin >> a >> b >> s; ll ans = 0; for(ll i = 1; i <= s; i++){ for(ll j = 1; j * j <= i; j++){ if(i % j == 0){ ll t = j, u = i / j; if(j * j == i){ if(t <= a && u <= b) ans += (a - t + 1) * (b - u + 1); } else{ if(t <= a && u <= b) ans += (a - t + 1) * (b - u + 1); if(u <= a && t <= b) ans += (a - u + 1) * (b - t + 1); } } } } cout << ans << endl; return 0; }