#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 5;
long long b, c, d, e, ans = 0, sum = 0, x, primes, pp, v, n, cnt, k, a;
int arr[N];
bool isprime(long long n) {
  if (n == 2) return true;
  if (n < 2 || n % 2 == 0) return false;
  for (long long i = 3; i * i <= n; i += 2) {
    if (n % i == 0) return false;
  }
  return true;
}
inline long long divisros(long long m) {
  cnt = 0;
  for (long long x = 1; x * x <= m; x++) {
    if (isprime(m)) {
      cnt += 2;
      return cnt;
      continue;
    } else {
      if (m % x == 0) {
        if (x * x == m)
          cnt++;
        else
          cnt += 2;
      }
    }
  }
  return cnt;
}
inline long long equals(long long i, long long j, long long k) {
  if (i == j && j == k)
    return 4;
  else if (i != k && k != j && i != j)
    return 8;
  else
    return 6;
}
int main() {
  cin.sync_with_stdio(0);
  memset(arr, -1, sizeof arr);
  cin >> a >> b >> c;
  for (long long i = 1; i <= a; i++)
    for (long long j = 1; j <= b; j++)
      for (long long k = 1; k <= c; k++) {
        if (~arr[i * j * k])
          sum += arr[i * j * k];
        else {
          arr[i * j * k] = divisros(i * j * k);
          sum += arr[i * j * k];
        }
      }
  printf("%d\n", sum % 1073741824);
}
