#include <bits/stdc++.h>
using namespace std;
const long long maxn = 1e5 + 69;
const long long Inf = 1e13;
long long n, newa[maxn], ans[maxn], newb[maxn];
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n;
  for (long long i = 2; i <= n; i += 2) cin >> ans[i];
  for (long long i = 2; i <= n; i += 2) {
    long long found = 0;
    for (long long j = sqrt(ans[i]); j >= 1; j--)
      if (ans[i] % j == 0) {
        long long newj = ans[i] / j;
        if (!((j + newj) & 1)) {
          newa[i] = (newj + j) / 2;
          newb[i] = (newj - j) / 2;
          if (newb[i] <= newa[i - 2]) continue;
          found = 1;
          break;
        }
      }
    if (!found) return cout << "No", 0;
  }
  for (long long i = 1; i <= n; i++) {
    if (i & 1) {
      ans[i] = (newb[i + 1] - newa[i - 1]) * (newb[i + 1] + newa[i - 1]);
      if (ans[i] > Inf) return cout << "No", 0;
    }
  }
  cout << "Yes" << '\n';
  for (long long i = 1; i <= n; i++) cout << ans[i] << " ";
}
