Sha256: 67296190141c8e44b6bb5e304132547c4e37e06365be4e80758478edb48d85ae

Contents?: true

Size: 580 Bytes

Versions: 393

Compression:

Stored size: 580 Bytes

Contents

(ns perfect-numbers)

(defn- get-divisors
  "Utility function to get the divisors of a number"
  [number]
  (for [n (range 1 (inc (quot number 2))) :when (zero? (mod number n))]
    n))

(defn classify [number]
  "Classifies a positive integer as deficient, abundant or perfect"
  (if-not (pos? number)
    (throw (IllegalArgumentException. "Only positive numbers can be classified."))
    (let [divisor-sum (apply + (get-divisors number))]
      (cond
        (> divisor-sum number) :abundant
        (< divisor-sum number) :deficient
        (= divisor-sum number) :perfect))))

Version data entries

393 entries across 393 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/clojure/exercises/perfect-numbers/src/example.clj
trackler-2.2.1.179 tracks/clojure/exercises/perfect-numbers/src/example.clj
trackler-2.2.1.178 tracks/clojure/exercises/perfect-numbers/src/example.clj
trackler-2.2.1.177 tracks/clojure/exercises/perfect-numbers/src/example.clj
trackler-2.2.1.176 tracks/clojure/exercises/perfect-numbers/src/example.clj
trackler-2.2.1.175 tracks/clojure/exercises/perfect-numbers/src/example.clj
trackler-2.2.1.174 tracks/clojure/exercises/perfect-numbers/src/example.clj
trackler-2.2.1.173 tracks/clojure/exercises/perfect-numbers/src/example.clj
trackler-2.2.1.172 tracks/clojure/exercises/perfect-numbers/src/example.clj
trackler-2.2.1.171 tracks/clojure/exercises/perfect-numbers/src/example.clj
trackler-2.2.1.170 tracks/clojure/exercises/perfect-numbers/src/example.clj
trackler-2.2.1.169 tracks/clojure/exercises/perfect-numbers/src/example.clj
trackler-2.2.1.167 tracks/clojure/exercises/perfect-numbers/src/example.clj
trackler-2.2.1.166 tracks/clojure/exercises/perfect-numbers/src/example.clj
trackler-2.2.1.165 tracks/clojure/exercises/perfect-numbers/src/example.clj
trackler-2.2.1.164 tracks/clojure/exercises/perfect-numbers/src/example.clj
trackler-2.2.1.163 tracks/clojure/exercises/perfect-numbers/src/example.clj
trackler-2.2.1.162 tracks/clojure/exercises/perfect-numbers/src/example.clj
trackler-2.2.1.161 tracks/clojure/exercises/perfect-numbers/src/example.clj
trackler-2.2.1.160 tracks/clojure/exercises/perfect-numbers/src/example.clj