#include <bits/stdc++.h>
using namespace std;
const long long MAXN = 2000;
const long long MOD = 1073741824;
long long t[MAXN + 100], u[MAXN + 100];
long long g[MAXN + 100][MAXN + 100];
bool pd[MAXN * 2];
long long a, b, c, d, i, j, len, k, ans;
long long gcd(long long x, long long y) {
  if (y == 0)
    return x;
  else
    return gcd(y, x % y);
}
void init() {
  len = 0;
  memset(pd, false, sizeof(pd));
  memset(u, 0, sizeof(u));
  u[1] = 1;
  for (i = 2; i <= MAXN; i++) {
    if (!pd[i]) {
      t[++len] = i;
      u[i] = -1;
    }
    for (j = 1; j <= len; j++) {
      if (t[j] > MAXN / i) break;
      pd[i * t[j]] = true;
      if (i % t[j] == 0) break;
      u[i * t[j]] = -u[i];
    }
  }
  for (i = 1; i <= MAXN; i++)
    for (j = 1; j <= MAXN; j++) g[i][j] = gcd(i, j);
}
long long cal(long long d, long long a) {
  long long sum = 0;
  for (long long i = 1; i <= a / d; i++)
    if (g[i * d][k] == 1) sum = (sum + a / d / i) % MOD;
  return sum;
}
int main() {
  init();
  cin >> a >> b >> c;
  ans = 0;
  for (d = 1; d <= min(a, b); d++) {
    if (u[d] == 0) continue;
    for (k = 1; k <= c; k++)
      ans = (ans + u[d] * (c / k) % MOD * cal(d, a) % MOD * cal(d, b) % MOD +
             MOD) %
            MOD;
  }
  cout << ans << endl;
  return 0;
}
