#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1e9 + 7;
const long long INF = 1e18;
const string nl = "\n";
struct modint {
  using value_type = long long;
  static value_type mod;
  value_type v;
  explicit operator long long() const { return v; }
  modint() { v = 0; }
  modint(long long _v) {
    v = (-mod < _v && _v < mod) ? _v : _v % mod;
    if (v < 0) {
      v += mod;
    }
  }
  friend bool operator==(const modint& a, const modint& b) {
    return a.v == b.v;
  }
  friend bool operator!=(const modint& a, const modint& b) { return !(a == b); }
  friend ostream& operator<<(ostream& os, const modint& m) {
    os << m.v;
    return os;
  }
  friend istream& operator>>(istream& is, modint& m) {
    long long x;
    is >> x;
    m.v = x;
    return is;
  }
  modint& operator+=(const modint& m) {
    v += m.v;
    if (v >= mod) {
      v -= mod;
    }
    return *this;
  }
  modint& operator-=(const modint& m) {
    v -= m.v;
    if (v < 0) {
      v += mod;
    }
    return *this;
  }
  modint& operator*=(const modint& m) {
    v = v * m.v % mod;
    return *this;
  }
  modint& operator/=(const modint& m) { return (*this) *= m.inv(); }
  friend modint power(modint a, long long p) {
    modint ans = 1;
    assert(p >= 0);
    for (; p; a *= a, p >>= 1) {
      if (p & 1) {
        ans *= a;
      }
    }
    return ans;
  }
  modint inv() const {
    value_type a = v, b = mod, x = 0, y = 1;
    while (a != 0) {
      value_type k = b / a;
      b -= k * a;
      x -= k * y;
      swap(a, b);
      swap(x, y);
    }
    return modint(x);
  }
  modint operator-() const { return modint(-v); }
  modint& operator++() { return *this += 1; }
  modint& operator--() { return *this -= 1; }
  friend modint operator+(modint a, const modint& b) { return a += b; }
  friend modint operator-(modint a, const modint& b) { return a -= b; }
  friend modint operator*(modint a, const modint& b) { return a *= b; }
  friend modint operator/(modint a, const modint& b) { return a /= b; }
};
modint::value_type modint::mod = MOD;
using mint = modint;
void set_mod(long long x) { modint::mod = x; }
int32_t main() {
  ios::sync_with_stdio(0);
  cin.tie(nullptr);
  set_mod(1LL << 30);
  const long long N = 1e6 + 5;
  long long a, b, c;
  cin >> a >> b >> c;
  vector<long long> divs(N);
  for (long long i = 1; i < N; ++i) {
    for (long long j = i; j < N; j += i) {
      ++divs[j];
    }
  }
  long long ans = 0;
  for (long long i = 1; i <= a; ++i) {
    for (long long j = 1; j <= b; ++j) {
      for (long long k = 1; k <= c; ++k) {
        ans += divs[i * j * k];
        ans %= (1LL << 30);
      }
    }
  }
  cout << ans << nl;
}
