4clojure #66 Greatest Common Divisor
4clojure #66 Greatest Common Divisor
最大公約数を求める関数を作る。
(= (__ 2 4) 2) (= (__ 10 5) 5) (= (__ 5 7) 1) (= (__ 1023 858) 33)
a
、b
の最大公約数とは、aでもbでも割り切れる数のうちの最大値だから
((fn my-gcd [a b] (let [m (max a b)] (last (filter #(and (= 0 (mod a %)) (= 0 (mod b %))) (take m (iterate inc 1)))))) 1023 858)