1 (require (planet "memoize.ss" ("dherman" "memoize.plt" 2 1)))
\r
3 (define (divides? n k)
\r
7 (define/memo (sum-of-proper-divisors n)
\r
14 (let ((ceil (floor (sqrt n))))
\r
19 (if (divides? n try)
\r
20 (loop (add1 try) (+ total try (other try)))
\r
21 (loop (add1 try) total))))))
\r
27 (let* ((sopd (sum-of-proper-divisors n))
\r
28 (sopd* (sum-of-proper-divisors sopd)))
\r
29 (if (and (= n sopd*) (< n sopd))
\r
31 (display (format "~a:~a" n sopd))(newline)
\r
32 (loop (add1 n) (+ S n sopd)))
\r