2015 day 4
This commit is contained in:
parent
7f9920447a
commit
a903132905
9
2015/Cargo.lock
generated
9
2015/Cargo.lock
generated
|
@ -3,3 +3,12 @@
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aoc2015"
|
name = "aoc2015"
|
||||||
version = "0.1.0"
|
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"
|
||||||
|
|
|
@ -8,3 +8,4 @@ edition = "2018"
|
||||||
name = "aoc"
|
name = "aoc"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
md5 = "0.7.0"
|
||||||
|
|
30
2015/src/bin/day4.rs
Normal file
30
2015/src/bin/day4.rs
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
use aoc::input;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let lines = input::read_lines();
|
||||||
|
let mut key = lines[0].to_string();
|
||||||
|
let key_len = key.len();
|
||||||
|
|
||||||
|
// Part 1
|
||||||
|
let mut n = 0;
|
||||||
|
loop {
|
||||||
|
key.replace_range(key_len.., &n.to_string());
|
||||||
|
let hash = md5::compute(key.as_bytes());
|
||||||
|
if &hash[..2] == [0, 0] && hash[2] < 0x10 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
n += 1
|
||||||
|
}
|
||||||
|
println!("Found coin with n {}.", n);
|
||||||
|
|
||||||
|
// Part 2
|
||||||
|
loop {
|
||||||
|
key.replace_range(key_len.., &n.to_string());
|
||||||
|
let hash = md5::compute(key.as_bytes());
|
||||||
|
if &hash[..3] == [0, 0, 0] {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
n += 1
|
||||||
|
}
|
||||||
|
println!("Found coin with n {}.", n);
|
||||||
|
}
|
Loading…
Reference in a new issue