#include <bits/stdc++.h>
using namespace std;
template <class T, class T1>
inline bool chkmax(T &x, const T1 &y) {
  return x < y ? x = y, true : false;
}
template <class T, class T1>
inline bool chkmin(T &x, const T1 &y) {
  return x > y ? x = y, true : false;
}
int a, b, c;
void read() { cin >> a >> b >> c; }
int gcd(int a, int b, int &x, int &y) {
  if (!a) {
    x = 0;
    y = 1;
    return b;
  }
  int x1, y1;
  int g = gcd(b % a, a, x1, y1);
  x = y1 - (b / a) * x1;
  y = x1;
  return g;
}
inline void shift_solution(int &x, int &y, int a, int b, int cnt) {
  x += cnt * b;
  y -= cnt * a;
}
int find_all_solutions(int a, int b, int c, int minx, int maxx, int miny,
                       int maxy) {
  int x, y, g;
  g = gcd(a, b, x, y);
  if (c % g) return 0;
  x *= c / g;
  y *= c / g;
  if (a < 0) x = -x;
  if (b < 0) y = -y;
  a /= g;
  b /= g;
  int sign_a = a < 0 ? -1 : 1;
  int sign_b = b < 0 ? -1 : 1;
  shift_solution(x, y, a, b, (minx - x) / b);
  if (x < minx) shift_solution(x, y, a, b, sign_b);
  if (x > maxx) return 0;
  int lx1 = x;
  shift_solution(x, y, a, b, (maxx - x) / b);
  if (x > maxx) shift_solution(x, y, a, b, -sign_b);
  int rx1 = x;
  shift_solution(x, y, a, b, -(miny - y) / a);
  if (y < miny) shift_solution(x, y, a, b, -sign_a);
  if (y > maxy) return 0;
  int lx2 = x;
  shift_solution(x, y, a, b, -(maxy - y) / a);
  if (y > maxy) shift_solution(x, y, a, b, sign_a);
  int rx2 = x;
  if (lx2 > rx2) swap(lx2, rx2);
  int lx = max(lx1, lx2);
  int rx = min(rx1, rx2);
  if (lx > rx) return 0;
  return 1;
}
void solve() {
  cout << (!find_all_solutions(a, b, c, 0, c, 0, c) ? "No" : "Yes") << '\n';
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  read();
  solve();
  return EXIT_SUCCESS;
}
