# -*- coding: utf-8 -*-

N = int(raw_input())
a = map(int, raw_input().split())

def is_odd(n):
    return True if (n%2!=0) else False

def is_s_even(n):
    return True if (n%4!=0 and n%2==0) else False

def is_w_even(n):
    return True if (n%4==0) else False

# 奇数配列p[] 4の倍数配列r[] どちらもない配列q[]
p, q, r = [], [], []
for i in range(N):
    if is_odd(a[i]):
        p.append(a[i])
    elif is_w_even(a[i]):
        r.append(a[i])
    else:
        q.append(a[i])

# 条件を満たすように並べる配列s[]
s = []
if len(p) > 0:
    s.append(p.pop())
elif len(q) > 0:
    s.append(q.pop())
else:
    s.append(r.pop())

for i in range(1,N):
    if is_odd(s[i-1]):
        if len(r) > 0:
            s.append(r.pop())
        else:
            print 'No'
            exit()
    elif is_s_even(s[i-1]):
        if len(q) > 0:
            s.append(q.pop())
        elif len(r) > 0:
            s.append(r.pop())
        else:
            print 'No'
            exit()
    else:
        if len(p) > 0:
            s.append(p.pop())
        elif len(q) > 0:
            s.append(q.pop())
        elif len(r) > 0:
            s.append(r.pop())
            
print 'Yes'
