#include <bits/stdc++.h>
#pragma warning(disable : 4996)
using namespace std;
const long long MAXN = 1e5 + 10;
const double EPS = 1e-7;
const unsigned long long INF = (1 << 30) - 1 + (1 << 30);
const long long MOD = 998244353;
const long long half = (MOD + 1) / 2;
const double pi = acos(-1);
long long a[MAXN], pref[MAXN];
int n;
int main() {
  srand(time(0));
  cin >> n;
  for (int i = 1; i < n; i += 2) {
    cin >> a[i];
    if (a[i] % 2 == 0 && a[i] % 4 != 0) {
      cout << "No\n";
      return 0;
    }
  }
  long long s = 1;
  long long sum = 0;
  for (int i = 1; i < n; i += 2) {
    while (s * s - a[i] - sum <= 0) {
      s++;
    }
    double tmp = s * s - a[i];
    while ((long long)(sqrt(tmp) + 0.001) * (long long)(sqrt(tmp) + 0.001) !=
           s * s - a[i]) {
      if (s > 1e7) {
        cout << "No\n";
        return 0;
      }
      s++;
      tmp = s * s - a[i];
    }
    a[i - 1] = s * s - a[i] - sum;
    sum += a[i - 1];
    sum += a[i];
  }
  cout << "Yes\n";
  for (int i = 0; i < n; i++) {
    cout << a[i] << " ";
  }
  return 0;
}
