use std::str::FromStr;

fn get_one<T : FromStr>() -> T {
    let mut s = String::new();
    std::io::stdin().read_line(&mut s).ok();
    return s.trim().parse().ok().unwrap();
}

fn get_vec<T : FromStr>() -> Vec<T> {
    let mut s = String::new();
    std::io::stdin().read_line(&mut s).ok();
    return s.trim().split_whitespace().map(|e| e.parse().ok().unwrap()).collect();
}

fn main() {
    let n : usize = get_one();
    let v : Vec<i32> = get_vec();

    let mut d1 = 0;
    let mut d2 = 0;
    let mut d4 = 0;
    for x in v {
        if x % 4 == 0 {
            d4 += 1;
        } else if x % 2 == 0 {
            d2 += 1;
        } else {
            d1 += 1;
        }
    }
    d1 += if d2 == 1 {1} else {0};
    if d4 * 2 >= d1 {
        println!("{}", "Yes");
    }
    else {
        println!("{}", "No");
    }
}
