#include <bits/stdc++.h>
using namespace std;
vector<int> divs[200005];
void criba() {
  for (int i = 1; i <= 200005; i++) {
    for (int j = i; j <= 200005; j += i) {
      divs[j].push_back(i);
    }
  }
}
long long circulo(int x, long long d) {
  long long a = INT_MAX;
  for (int i = 0; i < divs[x].size(); i++) {
    long long aux = abs(divs[x][i] - x / divs[x][i]);
    if (aux % 2 == 0 && aux * aux / 4 > d) a = min(a, aux / 2);
  }
  if (a != INT_MAX) return a * a - d;
  return -1;
}
int main() {
  criba();
  int n, x;
  cin >> n;
  n /= 2;
  long long d = 0;
  vector<long long> secuencia;
  for (int i = 0; i < n; i++) {
    cin >> x;
    long long aux = circulo(x, d);
    if (aux == -1) {
      cout << "No" << endl;
      return 0;
    }
    secuencia.push_back(aux);
    secuencia.push_back(x);
    d += aux + x;
  }
  cout << "Yes" << endl;
  for (int i = 0; i < secuencia.size(); i++) {
    cout << secuencia[i] << " ";
  }
  cout << endl;
}
