#include <bits/stdc++.h>
using namespace std;
int main(int argc, const char* argv[]) {
  int64_t n, m, k;
  cin >> n >> m >> k;
  map<int64_t, int64_t> storage_n, storage_m;
  int64_t a = n, b = m;
  for (int i = 2; i * i <= a; ++i) {
    while (a % i == 0) {
      a /= i;
      ++storage_n[i];
    }
  }
  if (a != 1) ++storage_n[a];
  a = b;
  for (int i = 2; i * i <= a; ++i) {
    while (a % i == 0) {
      a /= i;
      ++storage_m[i];
    }
  }
  if (a != 1) ++storage_m[a];
  vector<int64_t> divide_by_k;
  a = k;
  bool tmp = 1;
  if (a % 2 == 0) {
    a /= 2;
    tmp = 0;
  }
  for (int i = 2; i * i <= a; ++i) {
    while (a % i == 0) {
      a /= i;
      divide_by_k.push_back(i);
    }
  }
  if (a != 1) divide_by_k.push_back(a);
  a = n;
  b = m;
  for (auto i : divide_by_k) {
    if (storage_n[i]) {
      --storage_n[i];
      a /= i;
    } else if (storage_m[i]) {
      --storage_m[i];
      b /= i;
    } else {
      cout << "NO";
      return 0;
    }
  }
  if (tmp) {
    if (a < n)
      a *= 2;
    else
      b *= 2;
  }
  cout << "YES\n"
       << "0 " << b << "\n"
       << a << " 0\n0 0";
  return 0;
}
