my solutions to advent of code
aoc advent-of-code
at main 711 B view raw
1import gleam/bit_array 2import gleam/crypto.{Md5, hash} 3import gleam/int.{to_string} 4import gleam/io.{println} 5import gleam/result.{unwrap} 6import gleam/string.{trim} 7import simplifile.{read} 8 9pub fn find_first_with_leading(input: String, leading: String, i: Int) { 10 let result = 11 hash(Md5, <<{ input <> to_string(i) }:utf8>>) 12 |> bit_array.base16_encode 13 |> string.starts_with(leading) 14 case result { 15 True -> i 16 False -> find_first_with_leading(input, leading, i + 1) 17 } 18} 19 20pub fn main() { 21 let input = read(from: "../input.txt") |> unwrap("") |> trim() 22 println(find_first_with_leading(input, "00000", 0) |> to_string) 23 println(find_first_with_leading(input, "000000", 0) |> to_string) 24}