diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2022-08-27 22:51:20 +0200 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2022-08-27 22:51:20 +0200 |
| commit | c2e25913a56bac4b0760febe0a2943e20c195d27 (patch) | |
| tree | 25e68be737594677da13f27d96fb57fc98ff11f1 | |
| parent | feea729aecf0de8d1f3a86ca56ff1914b655a4dd (diff) | |
day4
| -rw-r--r-- | Cargo.lock | 9 | ||||
| -rw-r--r-- | Cargo.toml | 1 | ||||
| -rw-r--r-- | src/bin/day4.rs | 31 |
3 files changed, 41 insertions, 0 deletions
@@ -5,3 +5,12 @@ version = 3 [[package]] name = "advent" version = "0.1.0" +dependencies = [ + "md5", +] + +[[package]] +name = "md5" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" @@ -5,3 +5,4 @@ authors = ["Reiner Herrmann <reiner@reiner-h.de>"] edition = "2021" [dependencies] +md5 = "0.7" diff --git a/src/bin/day4.rs b/src/bin/day4.rs new file mode 100644 index 0000000..c6963bb --- /dev/null +++ b/src/bin/day4.rs @@ -0,0 +1,31 @@ +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); + } +} |
