#include <bits/stdc++.h>
using namespace std;
const int MAX_N = (int)1e5 + 5;
const long long INF = (long long)1e12;
long long A[MAX_N];
int main() {
  ios::sync_with_stdio(false), cin.tie(nullptr);
  int N;
  cin >> N;
  for (int i = 1; i < N; i += 2) cin >> A[i];
  long long X = 0, Y;
  for (int i = 1; i < N; i += 2) {
    long long mn = INF, mnD = INF, mnY = INF;
    for (int j = 1; j * j <= A[i]; j++) {
      if (A[i] % j == 0) {
        long long k = A[i] / j;
        if (j % 2 == k % 2 && (k - j) / 2 > X) {
          Y = (k - j) / 2;
          if (mn > Y + j) mn = Y + j, mnD = j, mnY = Y;
        }
      }
    }
    if (mn == INF) {
      cout << "No" << endl;
      return 0;
    } else
      A[i - 1] = mnY * mnY - X * X, X = mnY + mnD;
  }
  cout << "Yes" << endl;
  for (int i = 0; i < N; i++) cout << A[i] << ' ';
  cout << endl;
  return 0;
}
