use rand::{Rng, SeedableRng};
use rand::rngs::StdRng;
use std::time::{SystemTime, UNIX_EPOCH};
// Function to select random two distinct digits from a number
fn get_random_two_digits(number: i64) -> Result<String, &'static str> {
let num_str = number.to_string();
let chars: Vec<char> = num_str.chars().collect();
if chars.len() < 2 {
return Err("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 i = rng.random_range(0..chars.len());
let mut j = rng.random_range(0..chars.len());
while j == i {
j = rng.random_range(0..chars.len());
}
Ok(format!("{}{}", chars[i], chars[j]))
}
fn main() {
let num: i64 = 1234567;
match get_random_two_digits(num) {
Ok(random_two) => println!("Random two digits: {}", random_two),
Err(e) => println!("Error: {}", e),
}
}
/*
run:
Random two digits: 15
*/