How to check if two halves of a number are equal in Rust

1 Answer

0 votes
fn halves_equal(n: i32) -> bool {
    let s = n.to_string();
    let len = s.len();

    if len % 2 != 0 {
        return false; // cannot split evenly
    }

    let half = len / 2;
    let left = &s[..half];
    let right = &s[half..];

    left == right
}

fn main() {
    let test_numbers = [1212, 123123, 45454545, 123, 1213];

    for &n in &test_numbers {
        println!(
            "{} -> {}",
            n,
            if halves_equal(n) { "equal halves" } else { "not equal" }
        );
    }
}



/*
run:

1212 -> equal halves
123123 -> equal halves
45454545 -> equal halves
123 -> not equal
1213 -> not equal

*/

 



answered Dec 22, 2025 by avibootz
...