#include <bits/stdc++.h>
using namespace std;
long long gcd(long long a, long long b) {
  if (a == 0) return b;
  return gcd(b % a, a);
}
long long powm(long long base, long long exp, long long mod = 10000007) {
  base %= mod;
  long long ans = 1;
  while (exp) {
    if (exp & 1LL) ans = (ans * base) % mod;
    exp >>= 1LL, base = (base * base) % mod;
  }
  return ans;
}
long long x[100005];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long n;
  cin >> n;
  for (long long i = 2; i <= n; i += 2) {
    cin >> x[i];
  }
  long long sum = 0;
  int flag = 0;
  for (long long i = 1; i <= n; i++) {
    if (!(i & 1)) {
      sum += x[i];
      continue;
    }
    long long k = x[i + 1];
    long long temp = (1LL << 60);
    for (long long j = 1; j * j <= k; j++) {
      if (k % j == 0) {
        long long t = (k / j - j);
        if (t & 1) continue;
        t /= 2;
        if (t * t > sum) {
          temp = min(temp, t * t);
        }
      }
    }
    if (temp == (1LL << 60)) {
      flag = 1;
      break;
    }
    x[i] = temp - sum;
    sum = temp;
  }
  if (flag) {
    cout << "No" << '\n';
  } else {
    cout << "Yes" << '\n';
    for (int i = 1; i <= n; i++) cout << x[i] << " ";
  }
}
