#include <bits/stdc++.h>
using namespace std;
void solve() {
  long long n;
  cin >> n;
  vector<long long> a(n + 1, 0);
  vector<pair<long long, long long> > sq[n + 1];
  for (long long i = 2; i <= n; i += 2) {
    cin >> a[i];
  }
  long long last = 0, y, z, o, p;
  for (long long i = 2; i <= n; i += 2) {
    vector<pair<long long, long long> > tmp;
    for (long long j = 1; (j * j) < a[i]; j++) {
      if (a[i] % j == 0) {
        o = j, p = a[i] / j;
        if ((o + p) % 2 == 0 && (p - o) % 2 == 0) {
          z = ((o + p) / 2) * ((o + p) / 2), y = ((p - o) / 2) * ((p - o) / 2);
          tmp.push_back({z, y});
        }
      }
    }
    sort(tmp.begin(), tmp.end());
    if (tmp.size() == 0) {
      printf("No");
      return;
    }
    for (auto &j : tmp) {
      if (j.second > last) {
        a[i - 1] = j.second - last;
        last = j.first;
        break;
      }
    }
    if (a[i - 1] == 0) {
      printf("No");
      return;
    }
  }
  printf("Yes\n");
  for (long long i = 1; i <= n; i++) cout << a[i] << " ";
}
int32_t main() {
  long long t;
  t = 1;
  while (t--) {
    solve();
  }
  return 0;
}
