How to get the square root rounded down to the nearest integer of a positive integer in Rust

1 Answer

0 votes
fn my_sqrt(n: i64) -> i64 {
    if n == 0 || n == 1 {
        return n;
    }

    let mut start = 1;
    let mut end = n;

    while start <= end {
        let mid = start + (end - start) / 2;
        let mid_sq = (mid as i128) * (mid as i128);

        if mid_sq > n as i128 {
            end = mid - 1;
        } else if mid_sq == n as i128 {
            return mid;
        } else {
            start = mid + 1;
        }
    }

    end
}

fn main() {
    println!("{}", my_sqrt(240000)); 
}



/*
run:

489

*/

 



answered Dec 29, 2025 by avibootz

Related questions

...