How to select random two consecutive digits from a number in Rust

1 Answer

0 votes
use rand::{Rng, SeedableRng};
use rand::rngs::StdRng;
use std::time::{SystemTime, UNIX_EPOCH};

fn get_random_two_digits(num: i32) -> Result<String, &'static str> {
    let s = num.to_string();

    if s.len() < 2 {
        return Err("Error: number must have at least 2 digits");
    }
    let seed = SystemTime::now()
        .duration_since(UNIX_EPOCH)
        .expect("Time went backwards")
        .as_nanos() as u64;
        
    let mut rng = StdRng::seed_from_u64(seed);

    let start = rng.random_range(0..s.len() - 1);

    Ok(s[start..start + 2].to_string())
}

fn main() {
    let num = 1234567;

    match get_random_two_digits(num) {
        Ok(random_two) => println!("Random two digits: {}", random_two),
        Err(e) => println!("{}", e),
    }
}



/*
run:

Random two digits: 56

*/

 



answered Nov 26, 2025 by avibootz
...