use std::io::Write; use proconio::input; fn main() { input! { q: usize, queries: [usize; q], } let mut writer = std::io::BufWriter::new(std::io::stdout().lock()); for n in queries { let ans = solve(n); writeln!(writer, "{ans}").unwrap(); } } fn solve(n: usize) -> usize { for k in (2..=40).rev() { let mut lo = 1; let mut hi = n; while hi - lo > 1 { let mid = (lo + hi) / 2; if mid.saturating_pow(k) <= n { lo = mid; } else { hi = mid; } } if lo.saturating_pow(k) == n { return k as usize; } } 1 }