package day04 import ( "crypto/md5" "encoding/hex" "strconv" "strings" "tools" ) func findMd5SumStartsWith(secretStart string, start string) int { var secret string var md5sum [16]byte counter := 0 for true { secret = secretStart + strconv.Itoa(counter) md5sum = md5.Sum([]byte(secret)) if strings.HasPrefix(hex.EncodeToString(md5sum[:]), start) { return counter } counter++ } return -1 } func Part1(puzzle tools.AoCPuzzle) interface{} { secretStart := puzzle.GetInputArray()[0] return findMd5SumStartsWith(secretStart, "00000") } func Part2(puzzle tools.AoCPuzzle) interface{} { secretStart := puzzle.GetInputArray()[0] return findMd5SumStartsWith(secretStart, "000000") }