#include <bits/stdc++.h>
using namespace std;
int a, b, c;
int f[2001 * 2001];
int _GCD[2001][2001];
int GCD(int a, int b) {
  if (_GCD[a][b]) return _GCD[a][b];
  if (!b) return a;
  return _GCD[a][b] = GCD(b, a % b);
}
int phi(int x) {
  if (x & 1) return -1;
  return 1;
}
int main() {
  cin >> a >> b >> c;
  for (int j = (1); j <= (b); j++)
    for (int k = (1); k <= (c); k++)
      if (GCD(j, k) == 1) f[j * k] += (b / j) * (c / k);
  for (int x = (1); x <= (b * c); x++)
    for (int y = 2 * x; y <= b * c; y += x) f[x] += f[y];
  int ans = 0;
  for (int i = (1); i <= (a); i++) {
    vector<int> L;
    int x, y;
    for (x = i, y = 2; y * y <= x; y++)
      if (x % y == 0) {
        L.push_back(y);
        while (x % y == 0) x /= y;
      }
    if (x != 1) L.push_back(x);
    for (int s = (0); s <= ((1 << int((L).size())) - 1); s++) {
      int x = 1, cnt = 0;
      for (int j = (0); j <= (int((L).size()) - 1); j++)
        if ((s >> j) & 1) cnt++, x *= L[j];
      ans += phi(cnt) * f[x] * (a / i);
    }
  }
  cout << (ans % (1 << 30) + (1 << 30)) % (1 << 30);
  return 0;
}
