#include <bits/stdc++.h>
using namespace std;
vector<long long int> div1(1e6 + 2);
vector<long long int> fac[1000001];
vector<long long> isprime(1000000, true);
vector<long long> prime;
vector<long long> SPF(1000000);
void init(int N = 1000000) {
  isprime[0] = isprime[1] = false;
  for (long long int i = 2; i < N; i++) {
    if (isprime[i]) {
      prime.push_back(i);
      fac[i].push_back(i);
      SPF[i] = i;
    }
    for (long long int j = 0;
         j < (int)prime.size() && i * prime[j] < N && prime[j] <= SPF[i]; j++) {
      isprime[i * prime[j]] = false;
      fac[i * prime[j]].push_back(prime[j]);
      SPF[i * prime[j]] = prime[j];
    }
  }
}
void init1() {
  long long int cnt = 1;
  long long int fin = 0;
  long long int n1;
  for (int i = 1; i <= 1e6 + 1; ++i) {
    n1 = i;
    cnt = 1;
    for (int j = 0; prime[j] * prime[j] <= n1; ++j) {
      int te = 0;
      while (n1 % prime[j] == 0) {
        te++;
        n1 /= prime[j];
      }
      cnt *= (te + 1);
    }
    if (n1 >= 2) cnt *= 2;
    div1[i] = cnt;
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  init();
  init1();
  long long int a, b, c;
  cin >> a >> b >> c;
  long long int ans = 0;
  for (int i = 1; i <= a; i++) {
    for (int j = 1; j <= b; j++) {
      for (int k = 1; k <= c; k++) {
        ans = ((ans) + (div1[i * j * k] % 1073741824)) % 1073741824;
      }
    }
  }
  cout << ans;
  return 0;
}
