aboutsummaryrefslogtreecommitdiff
path: root/2015/puzzle-4.rkt
blob: 6641bff467472455b5517d6fff67d541c5a922e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#lang racket

(require racket/file)
(require file/md5)

(define input (file->string "4-input"))

(define (find-salt requested-string current)
  (let* ([full-message (string-append input (number->string current))]
         [hash (bytes->string/locale (md5 full-message))])
    (if (string-prefix? hash requested-string)
        current
        (find-salt requested-string (+ current 1)))))

(printf "Round 1: ~a~%" (find-salt "00000"  0))
(printf "Round 2: ~a~%" (find-salt "000000" 0))

;; Local Variables:
;; compile-command: "racket puzzle-4.rkt"
;; End: