fn main() { let input = "ckczppom"; println!("4a: {}", find_hash_count(input, "00000")); println!("4b: {}", find_hash_count(input, "000000")); } fn find_hash_count(input: &str, start: &str) -> u32 { let mut i = 0; loop { let text = input.to_string() + &i.to_string(); let digest = format!("{:?}", md5::compute(&text)); if digest.starts_with(start) { return i; } i += 1; } } #[cfg(test)] mod tests { use super::*; #[test] fn test() { assert_eq!(find_hash_count("abcdef", "00000"), 609043); assert_eq!(find_hash_count("pqrstuv", "00000"), 1048970); } }