1
0
mirror of https://gitlab.com/MisterBiggs/aoc_2015-rust.git synced 2025-06-16 06:56:42 +00:00
aoc_2015-Rust/src/day4.rs

42 lines
873 B
Rust

use md5;
pub fn run() {
println!("Day 4: [PRECALCULATED]");
let input = "yzbqklnj".to_string();
println!("\tPart 1: 282749");
println!("\tPart 2: 9962624");
// println!("\tPart 1: {}", part1(&input, 5));
// println!("\tPart 2: {}", part1(&input, 6));
}
fn part1(input: &String, zeros: usize) -> usize {
let mut key: usize = 0;
let max_iter = 1e9 as usize;
loop {
let digest = md5::compute(format!("{}{}", input, key));
if format!("{:x},", digest).starts_with(&"0".repeat(zeros)) {
return key;
}
key += 1;
if key == max_iter {
return 0;
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_part_1() {
assert_eq!(part1(&"abcdef".to_string(), 5), 609043);
assert_eq!(part1(&"pqrstuv".to_string(), 5), 1048970);
}
}