use proconio::input; fn solve(a: i64) -> bool { let max_p = a.min((a as f64 * 2.0).cbrt().ceil() as i64); let Some(p) = (2 ..= max_p).find(|&p| a % p == 0 ) else { return false }; let b = a / p; let max_q = b.min((b as f64 * 2.0).sqrt().ceil() as i64); let Some(q) = (2 ..= max_q).find(|&q| b % q == 0 ) else { return false }; let c = b / q; if c <= 1 { return false; } let max_r = (c - 1).min((c as f64 * 2.0).sqrt().ceil() as i64); if let Some(_) = (2 ..= max_r).find(|&r| c % r == 0 ) { return false; } true } fn main() { input! { Q: usize, A: [i64; Q], } for a in A { println!("{}", if solve(a) { "Yes" } else { "No" }); } }