From 23355128183a19f1b8e983bdf50a3ea2f1a07fb2 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sun, 2 Feb 2014 20:18:12 -0500 Subject: Solve problem 9. --- problem-9.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 problem-9.scm diff --git a/problem-9.scm b/problem-9.scm new file mode 100644 index 0000000..cc0b862 --- /dev/null +++ b/problem-9.scm @@ -0,0 +1,25 @@ +(use-modules (srfi srfi-1) + (srfi srfi-42)) + +(define (square x) + (* x x)) + +;; Euclid's formula. +(define (generate-triple n m) + (list (- (square n) (square m)) + (* 2 n m) + (+ (square n) (square m)))) + +(define (generate-triples max-n max-m) + (concatenate + (list-ec (:range n 2 max-n) + (list-ec (:range m 1 (1- n)) + (generate-triple n m))))) + +(define (find-triple-sum goal) + (find (lambda (triple) + (= (apply + triple) goal)) + ;; Assumed that this range would be enough. :) + (generate-triples 100 99))) + +(apply * (find-triple-sum 1000)) -- cgit v1.2.3