#include <bits/stdc++.h>
using namespace std;
void calc(long long n, vector<pair<int, int>>& a) {
  for (long long cur = 2; cur * cur <= n; cur++) {
    if (n % cur == 0) {
      int cnt = 0;
      while (n % cur == 0) {
        cnt++;
        n /= cur;
      }
      a.push_back({cur, cnt});
    }
  }
  if (n != 1) {
    a.push_back({n, 1});
  }
}
inline long long pw(long long a, long long n) {
  long long res = 1;
  while (n) {
    if (n % 2) {
      res *= a;
    }
    a *= a;
    n /= 2;
  }
  return res;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int _ = 1;
  while (_--) {
    long long n, m, k;
    cin >> n >> m >> k;
    if (2 * n * m % k) {
      cout << "NO" << endl;
      return 0;
    }
    if (2 * n * m == k) {
      cout << "YES" << endl;
      cout << "0 0" << endl;
      cout << "0 1" << endl;
      cout << "1 0" << endl;
      return 0;
    }
    if (n == 1 && m == 1) {
      cout << "NO" << endl;
      return 0;
    }
    vector<pair<int, int>> a, b, c;
    calc(n, a);
    calc(m, b);
    calc(k, c);
    int it = 0;
    for (int i = 0; i < a.size(); i++) {
      for (int j = 0; j < c.size(); j++) {
        if (a[i].first == c[j].first) {
          int mn = min(a[i].second, c[j].second);
          a[i].second -= mn;
          c[j].second -= mn;
        }
      }
    }
    for (int i = 0; i < b.size(); i++) {
      for (int j = 0; j < c.size(); j++) {
        if (b[i].first == c[j].first) {
          int mn = min(b[i].second, c[j].second);
          b[i].second -= mn;
          c[j].second -= mn;
        }
      }
    }
    long long cur = (n * m % k ? 1 : 2);
    auto na = a, nb = b;
    for (int i = 0; i < a.size(); i++) {
      while (cur * a[i].first <= n && a[i].second) {
        cur *= a[i].first;
        a[i].second--;
      }
    }
    for (int i = 0; i < b.size(); i++) {
      while (cur * b[i].first <= n && b[i].second) {
        cur *= b[i].first;
        b[i].second--;
      }
    }
    long long y = (n * m / k) / (cur / 2);
    if (cur <= n && y <= m) {
      cout << "YES" << endl;
      cout << "0 0" << endl;
      cout << cur << " 0" << endl;
      cout << "0 " << y << endl;
      return 0;
    }
    cur = (n * m % k ? 1 : 2);
    for (int i = 0; i < nb.size(); i++) {
      while (cur * nb[i].first <= m && nb[i].second) {
        cur *= nb[i].first;
        nb[i].second--;
      }
    }
    for (int i = 0; i < a.size(); i++) {
      while (cur * na[i].first <= m && na[i].second) {
        cur *= na[i].first;
        na[i].second--;
      }
    }
    y = (n * m / k) / (cur / 2);
    if (cur <= m && y <= n) {
      cout << "YES" << endl;
      cout << "0 0" << endl;
      cout << y << " 0" << endl;
      cout << "0 " << cur << endl;
      return 0;
    }
    cout << "NO" << endl;
  }
}
