#include <bits/stdc++.h>
using namespace std;
const int N = 2001;
int miu[N], tot[N], sum[N];
int lcm[N][N];
int n, m, p;
void Init(int x) {
  int i, j, k;
  miu[1] = 1;
  for (i = 1; i < x; i++) {
    for (j = i; j < x; j += i) tot[j]++;
    for (j = i * 2; j < x; j += i) miu[j] -= miu[i];
  }
  for (i = 1; i < x; i++) sum[i] = sum[i - 1] + tot[i];
  for (k = 1; k < x; k++) {
    for (i = k; i < x; i += k) {
      for (j = k; j < x; j += k) lcm[i][j] = k;
    }
  }
  for (i = 1; i < x; i++) {
    int now = 0;
    for (j = 1; j < x; j++) {
      now += i;
      lcm[i][j] = now / lcm[i][j];
    }
  }
}
void DoIt() {
  int i, j, k;
  unsigned int ans = 0;
  int r = min(n, m);
  int s = min(n, p);
  int t = min(m, p);
  for (i = 1; i <= r; i++) {
    if (miu[i]) {
      for (j = 1; j <= s; j++) {
        if (miu[j] && lcm[i][j] <= n) {
          int ever = miu[i] * miu[j] * sum[n / lcm[i][j]];
          for (k = 1; k <= t; k++) {
            if (miu[k] && lcm[k][i] <= m && lcm[k][j] <= p)
              ans += ever * miu[k] * sum[m / lcm[k][i]] * sum[p / lcm[k][j]];
          }
        }
      }
    }
  }
  ans %= (1 << 30);
  int ansx = ans;
  printf("%d\n", ansx);
}
int main() {
  scanf("%d%d%d", &n, &m, &p);
  Init(max(max(n, m), p) + 1);
  DoIt();
  return 0;
}
