#include<bits/stdc++.h> #define forn(i, n) for (int i = 0 ; i < int(n) ; i++) #define fore(i, s, t) for (int i = s ; i < (int)t ; i++) #define fi first #define se second #define all(x) x.begin(),x.end() #define pf2(x,y) printf("%d %d ",x,y) #define pf(x) printf("%d ",x) #define each(x) for(auto it:x) cout<<it<<endl; #define pii pair<int,int> #define sc(x) scanf("%d",&x) using namespace std; typedef long long ll; const int maxn=2e5+5; const int maxm=2e5+5; const int inf=1e9; int a[maxn],n; vector<pair<int,int>> pp[maxn]; const int S=200000; int main() { for(int i=1;i<=S;i++){ if(i*2+1>S) break; for(int j=i+1;1ll*j*j-1ll*i*i<=S;j++) pp[1ll*j*j-1ll*i*i].push_back({i,j}); } cin>>n; for(int i=2;i<=n;i+=2){ int x;cin>>x; for(auto t:pp[x]){ if(a[i-2]<t.fi) { a[i-1]=t.fi,a[i]=t.se; break; } } if(!a[i-1]) { puts("No");return 0; } } puts("Yes"); for(int i=1;i<=n;i++) printf("%lld ",a[i]*1ll*a[i]-a[i-1]*1ll*a[i-1]); puts(""); }