use std::io; fn main() { let n = read_input(); let mut v: Vec = Vec::new(); for _i in 0..n { v.push(read_input()); } for n in v { println!("{}", sqrt_n(n)); } } fn read_input() -> u64 { let mut s = String::new(); io::stdin().read_line(&mut s).unwrap(); s.trim().parse().unwrap() } fn sqrt_n(n: u64) -> u64 { let mut l: u64 = 1; let mut r: u64 = 1_000_000_001; let mut m: u64 = (l + r) / 2; let mut prev_m: u64 = m; for _i in 0..100 { if m * m > n { r = m; } else { l = m; } m = (l + r) / 2; if prev_m == m { break; } prev_m = m; } m }