Skip to content

Instantly share code, notes, and snippets.

@skatenerd
Last active December 21, 2015 18:38
Show Gist options
  • Save skatenerd/6348234 to your computer and use it in GitHub Desktop.
Save skatenerd/6348234 to your computer and use it in GitHub Desktop.
lol
(defn divides? [bottom top]
(zero? (mod top bottom)))
(def naturals (iterate inc 1))
(defn multiples-of
([n]
(map #(* n %) (rest naturals)))
([n max]
(take-while #(<= % max) (multiples-of n))))
(defn combine-multiples [current-base largest composites-so-far]
(clojure.set/union
composites-so-far
(set (multiples-of current-base largest))))
(defn composites [largest]
(reduce
(fn [composites-so-far current-base]
(if (contains? composites-so-far current-base)
composites-so-far
(combine-multiples current-base largest composites-so-far)))
#{}
(range 2 (/ largest 2))))
(defn primes [largest]
(clojure.set/difference (set (range 2 largest)) (composites largest)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment