#include <bits/stdc++.h>
using namespace std;
const long long maxn = 1e5 + 1;
long long ans[maxn], a[maxn];
bool check(long long x) {
  long long t = sqrt(x);
  return t * t != x;
}
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n / 2; ++i) scanf("%lld", &a[i]);
  long long cnt = 0;
  for (int i = 1; i <= n / 2; ++i) {
    cnt++;
    while (check(cnt * cnt + a[i]) && cnt < maxn) cnt++;
    if (cnt >= maxn) {
      puts("No");
      return 0;
    }
    ans[2 * i - 1] = cnt * cnt;
    ans[2 * i] = cnt * cnt + a[i];
    cnt = sqrt(ans[2 * i]);
  }
  puts("Yes");
  for (int i = 1; i <= n; ++i)
    printf("%lld ", (i % 2 == 0) ? a[i / 2] : ans[i] - ans[i - 1]);
}
