#include <bits/stdc++.h>
using namespace std;
int f(int x, int d) {
  int max1 = 0;
  if (x % 2 == 0) {
    for (int i = 2; i * i < x; i += 2) {
      if (x % i == 0 && x / i % 2 == 0 && max1 < i && (x / i - i) / 2 > d) {
        max1 = i;
      }
    }
  } else {
    for (int i = 1; i * i < x; i += 2) {
      if (x % i == 0 && max1 < i && (x / i - i) / 2 > d) {
        max1 = i;
      }
    }
  }
  return max1;
}
int main() {
  int n, d = 0;
  bool T = true;
  cin >> n;
  int A[n / 2];
  long long t[n];
  for (int i = 0; i < n / 2; i++) {
    cin >> A[i];
  }
  for (int i = 0; i < n / 2; i++) {
    int x = A[i];
    int k = f(x, d);
    if (k == 0) {
      T = false;
      break;
    }
    d = (k + x / k) / 2;
    t[2 * i] = (x / k - k) / 2;
    t[2 * i + 1] = d;
  }
  for (int i = 0; i < n - 1; i++) {
    if (t[i] >= t[i + 1]) {
      T = false;
      break;
    }
  }
  if (T) {
    cout << "Yes" << endl;
    cout << t[0] * t[0] << " ";
    for (int i = 1; i < n; i++) {
      cout << t[i] * t[i] - t[i - 1] * t[i - 1] << " ";
    }
  } else {
    cout << "No";
  }
}
