#include <bits/stdc++.h>
using namespace std;
template <class T>
bool checkMin(T& a, T b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
bool checkMax(T& a, T b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
const int INF = 1e9;
const int MN = 101;
const int MOD = 1073741824;
int d[MN * MN * MN];
int a, b, c;
int N = MN * MN * MN;
int main() {
  memset(d, 0, sizeof(d));
  scanf("%d %d %d", &a, &b, &c);
  int n = a * b * c, m = sqrt(N);
  for (int i = (1); i < (N); i++) {
    for (int j = i; j < N; j += i) d[j]++;
  }
  int sum = 0;
  for (int i = (1); i <= (a); i++)
    for (int j = (1); j <= (b); j++)
      for (int k = (1); k <= (c); k++) sum = (sum + d[i * j * k]) % MOD;
  printf("%d\n", sum);
}
