importing projecteuler into git
[srid.projecteuler.git] / 14.scm
blob7465e1673b0d9d76dd02624b01bad020ee6688dc
1 (require (planet "memoize.ss" ("dherman" "memoize.plt" 2 1)))\r
2 \r
3 (define/memo (collatz n)\r
4   (cond ((= n 1) 1)\r
5         ((even? n) (add1 (collatz (/ n 2))))\r
6         (else (add1 (collatz (add1 (* 3 n)))))))\r
7 \r
8 (let ((m -1) (the-number #f))\r
9   (let loop ((n 1))\r
10     (when (< n 1000000)\r
11       (when (> (collatz n) m)\r
12         (set! m (collatz n))\r
13         (set! the-number n))\r
14       (loop (add1 n))))\r
15   the-number)