#include <bits/stdc++.h>
using namespace std;
long long int arr[100010];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  ;
  long long int n;
  cin >> n;
  for (long long int i = 0; i < (long long int)(n / 2); i++) {
    cin >> arr[i];
  }
  vector<long long int> ans;
  long long int prev = 0;
  for (long long int i = 0; i < (long long int)(n / 2); i++) {
    long long int st = sqrt(arr[i]);
    if (st % 2 != arr[i] % 2) st--;
    bool done = false;
    for (long long int d = st; d >= 1; d -= 2) {
      if (arr[i] % d != 0) continue;
      if ((arr[i] - d * d) % (2 * d) != 0) continue;
      long long int nex = (arr[i] - d * d) / (2 * d);
      if (nex > prev) {
        prev = nex + d;
        ans.push_back(nex);
        ans.push_back(nex + d);
        done = true;
        break;
      }
    }
    if (!done) {
      cout << "No" << endl;
      return 0;
    }
  }
  cout << "Yes" << endl;
  cout << ans[0] * ans[0] << " ";
  for (long long int i = 1; i <= (long long int)(ans.size() - 1); i++) {
    cout << ans[i] * ans[i] - ans[i - 1] * ans[i - 1] << " ";
  }
}
