#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 10;
const int maxm = 110;
const int mod = 1e9 + 7;
long long int N, M, er[maxn], ans[maxn];
bool perfsq(long long int a) {
  for (long long int i = 2; i * i <= a; i++)
    if (i * i == a) return true;
  return false;
}
long long int get(long long int a, long long int prev) {
  long long int temp1, temp2, x, y;
  for (long long int i = sqrt(a); i >= 1; i--)
    if (!(a % i)) {
      temp1 = i, temp2 = a / i;
      if ((temp1 + temp2) % 2) continue;
      y = (temp1 + temp2) / 2;
      x = temp2 - y;
      if (x * x > prev) return x * x - prev;
    }
  return -1;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> N;
  M = N / 2;
  for (int i = 1; i <= M; i++) {
    cin >> er[i];
    ans[2 * i] = er[i];
  }
  long long int prev = 0;
  for (int i = 1; i <= N; i += 2) {
    long long int a = get(ans[i + 1], prev);
    if (a == -1) {
      cout << "No" << '\n';
      return 0;
    }
    ans[i] = a;
    prev += ans[i] + ans[i + 1];
  }
  cout << "Yes" << '\n';
  for (int i = 1; i <= N; i++) cout << ans[i] << " ";
  cout << '\n';
  return 0;
}
