25 lines
367 B
Ruby
Executable File
25 lines
367 B
Ruby
Executable File
#!/usr/bin/env ruby
|
|
|
|
require 'digest'
|
|
|
|
def part1(input)
|
|
find_md5 input
|
|
end
|
|
|
|
def part2(input)
|
|
find_md5 input, 6
|
|
end
|
|
|
|
def find_md5(input, leading_zeros = 5)
|
|
(1..).detect do |i|
|
|
Digest::MD5.hexdigest(input + i.to_s).start_with?('0' * leading_zeros)
|
|
end
|
|
end
|
|
|
|
input = 'yzbqklnj'
|
|
|
|
puts "=== Part 1 ==="
|
|
puts part1(input)
|
|
puts "=== Part 2 ==="
|
|
puts part2(input)
|