#include <bits/stdc++.h>
using namespace std;
int a = 0, b = 0, c = 0, d = 0, e[100010] = {}, f[100010];
double syo = 0, su = 0;
long long mur = 0, kmr = 0, yju = 0, counto[5003], counto1[5003];
char fir = 'z', sec = 'z', mado[5010];
string rik, tok[25003];
bool mazi[110], gi[110], zi, manji;
pair<int, int> n[110];
vector<int> aa[50] = {}, cc;
vector<string> bb;
map<int, int> pos;
int gcd(int a, int b) {
  int d;
  if (a > b) {
    int t = b;
    b = a;
    a = t;
  }
  while ((d = b % a) != 0) {
    b = a;
    a = d;
  }
  return a;
}
int main() {
  cin >> a;
  for (int i = 0; i < a; i++) {
    cin >> e[i];
    if (e[i] % 4 == 0) {
      b++;
    } else if (e[i] % 2 == 0) {
      c++;
    }
  }
  c -= 1;
  a -= c;
  if (a == 2) {
    if (e[0] % 2 == 0 && e[1] % 2 == 0) {
      cout << "Yes" << endl;
      return 0;
    } else if (e[0] % 4 == 0 || e[1] % 4 == 0) {
      cout << "Yes" << endl;
      return 0;
    } else {
      cout << "No" << endl;
      return 0;
    }
  } else if (a == 3) {
    if (e[0] % 4 == 0 || e[1] % 4 == 0 || e[2] % 4 == 0) {
      cout << "Yes" << endl;
      return 0;
    } else if (e[0] % 2 == 0 && e[1] % 2 == 0 && e[2] % 2 == 0) {
      cout << "Yes" << endl;
      return 0;
    } else {
      cout << "No" << endl;
    }
  }
  if (a <= b) {
    cout << "Yes" << endl;
  } else {
    cout << "No" << endl;
  }
  return 0;
}
