#include <bits/stdc++.h>
using namespace std;
const long long mod = (1ll << 30);
int a, b, c;
int mu[4000005];
int pri[2000005];
int lenp;
bool vis[4000005];
long long f[4000005];
long long s[4000005];
long long x[4000005];
long long y[4000005];
long long ans;
void oular() {
  mu[1] = 1;
  for (int i = 2; i <= 4000000; i++) {
    if (!vis[i]) {
      pri[++lenp] = i;
      mu[i] = -1;
    }
    for (int j = 1; pri[j] * i <= 4000000 && j <= lenp; j++) {
      if (i % pri[j] == 0) {
        mu[i * pri[j]] = 0;
        vis[i * pri[j]] = 1;
        break;
      }
      mu[i * pri[j]] = -mu[i];
      vis[i * pri[j]] = 1;
    }
  }
}
int main() {
  cin >> a >> b >> c;
  oular();
  for (int i = 1; i <= a; i++)
    for (int j = 1; j <= b; j++) f[i * j]++;
  for (int i = 1; i <= a * b; i++)
    for (int j = 1; j <= a * b / i; j++) s[i] = (s[i] + f[i * j]) % mod;
  for (int i = 1; i <= c; i++)
    for (int j = 1; j <= a * b / i; j++) x[i] = (x[i] + s[i * j]) % mod;
  for (int i = 1; i <= c; i++)
    for (int j = 1; j <= i; j++) y[i] = (y[i] + i / j) % mod;
  for (int i = 1; i <= c; i++)
    ans = (ans + (mu[i] * x[i] * y[c / i] % mod + mod) % mod) % mod;
  cout << ans;
  return 0;
}
