Problem description, from Project Euler
There exists exactly one Pythagorean triplet for which a + b + c = N. (N is known.) Find the product abc.
Solution
This was a quick once since I just brute-forced it. I think there are some optimizations possible related to the idea that a^2 + b^2 < c^2.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44  | ; flattens a nested list(defn flatten [x] (let [s? #(instance? clojure.lang.Sequential %)] (filter (complement s?) (tree-seq s? seq x)))); returns the result of the pythagorean equation(defn pythagorean-triplet-c [a b]    (. java.lang.Math         (sqrt             (+ (* a a)                 (* b b)                )            )        )    ); returns the c term of a pythagorean triple; nil if natural term does not exist(defn pythagorean-triplet-c-natural [a b]    (def result (pythagorean-triplet-c a b))    (if (zero? (- result (int result)))        (int result)        nil        )    )(defn problem09 [sum]<br />    (def res<br />        (map            (fn [a]                (map                    (fn [b]                        (def c (pythagorean-triplet-c-natural a b))                        (if (and (not (nil? c))                                (= sum (+ a b c))                                )                            (* a b c)                            nil                            )                        )                        (range 100 sum)                    )                )            (range 100 sum)            )        )    (first (distinct (filter #(not (nil? %)) (flatten res))))    ) | 
Blog: Project Euler Problem 9 Solution: Clojure /programming/project-euler-problem-9-clojure/
This comment was originally posted on Twitter
RT @jamiealy: Blog: Project Euler Problem 9 Solution: Clojure //is.gd/bLngZ
This comment was originally posted on Twitter
test comment.