diff options
| author | Tyler Wardhaugh <tyler.wardhaugh@gmail.com> | 2020-10-14 10:29:10 -0700 |
|---|---|---|
| committer | Tyler Wardhaugh <tyler.wardhaugh@gmail.com> | 2020-10-14 17:05:04 -0700 |
| commit | f7bcdd4005929c02b722029a7621018d7694b6c9 (patch) | |
| tree | 64258b8fc127d7e012d74f75114da13cb839fdf4 | |
| parent | c0bc7cca5b312832af50c6f03dac2565b58bac4c (diff) | |
| download | perlweeklychallenge-club-f7bcdd4005929c02b722029a7621018d7694b6c9.tar.gz perlweeklychallenge-club-f7bcdd4005929c02b722029a7621018d7694b6c9.tar.bz2 perlweeklychallenge-club-f7bcdd4005929c02b722029a7621018d7694b6c9.zip | |
Ch82/Task 1: improve algorithm using gcd(m, n)
One of the great things about the PWC is seeing others' code and
gleaning insights from them.
| -rw-r--r-- | challenge-082/tyler-wardhaugh/clojure/deps.edn | 3 | ||||
| -rw-r--r-- | challenge-082/tyler-wardhaugh/clojure/pom.xml | 5 | ||||
| -rw-r--r-- | challenge-082/tyler-wardhaugh/clojure/src/tw/weekly/c82/t1.clj | 11 |
3 files changed, 13 insertions, 6 deletions
diff --git a/challenge-082/tyler-wardhaugh/clojure/deps.edn b/challenge-082/tyler-wardhaugh/clojure/deps.edn index 4010bedaeb..c692c74c45 100644 --- a/challenge-082/tyler-wardhaugh/clojure/deps.edn +++ b/challenge-082/tyler-wardhaugh/clojure/deps.edn @@ -1,5 +1,6 @@ {:paths ["src" "resources"] - :deps {org.clojure/clojure {:mvn/version "1.10.1"}} + :deps {org.clojure/clojure {:mvn/version "1.10.1"} + org.clojure/math.numeric-tower {:mvn/version "0.0.4"}} :aliases {:test {:extra-paths ["test"] :extra-deps {org.clojure/test.check {:mvn/version "1.0.0"}}} diff --git a/challenge-082/tyler-wardhaugh/clojure/pom.xml b/challenge-082/tyler-wardhaugh/clojure/pom.xml index 6fead6ac04..92eb55d64a 100644 --- a/challenge-082/tyler-wardhaugh/clojure/pom.xml +++ b/challenge-082/tyler-wardhaugh/clojure/pom.xml @@ -30,6 +30,11 @@ <artifactId>clojure</artifactId> <version>1.10.1</version> </dependency> + <dependency> + <groupId>org.clojure</groupId> + <artifactId>math.numeric-tower</artifactId> + <version>0.0.4</version> + </dependency> </dependencies> <build> <sourceDirectory>src</sourceDirectory> diff --git a/challenge-082/tyler-wardhaugh/clojure/src/tw/weekly/c82/t1.clj b/challenge-082/tyler-wardhaugh/clojure/src/tw/weekly/c82/t1.clj index 1b2713d772..7d7e3288c7 100644 --- a/challenge-082/tyler-wardhaugh/clojure/src/tw/weekly/c82/t1.clj +++ b/challenge-082/tyler-wardhaugh/clojure/src/tw/weekly/c82/t1.clj @@ -1,5 +1,6 @@ (ns tw.weekly.c82.t1 - (:require [clojure.edn :as edn])) + (:require [clojure.edn :as edn]) + (:require [clojure.math.numeric-tower :as math])) ;;; Task description for TASK #1 › Common Factors ; Submitted by: Niels van Dijke @@ -11,10 +12,10 @@ (defn common-factors "Determine the common factors for m and n." [m n] - (let [[m n] (sort [m n]) - source (concat (range 1 (inc (quot n 2))) [n]) - xf (filter (fn [x] (= 0 (rem n x) (rem m x))))] - (into (sorted-set) xf source))) + (let [gcd (math/gcd m n) + source (range 1 (inc (quot gcd 2))) + xf (filter (fn [x] (zero? (rem gcd x))))] + (into (sorted-set gcd) xf source))) (defn -main "Run Task 1 with two strings A and B, defaulting to the first example given in the task description." |
