Last night I attempted Project Euler #5 <http://projecteuler.net/problem=5>in Clojure. The problem is as follows:
> # Smallest multiple > > 2520 is the smallest number that can be divided by each of the numbers > from 1 to 10 without any remainder. > > What is the smallest positive number that is evenly divisible by all of the > numbers from 1 to 20? Here's my solution: (defn divisible? [numer denom] (= 0 (mod numer denom))) (defn smallest-multiple "Find the smallest positive number that is evenly divisible by all of the numbers from 1 to n." [n] (let [s (range 1 (inc n))] (first (filter (fn [x] (every? (partial divisible? x) s)) (rest (range)))))) This gives the expected answer for *n* of 10, but takes a long time to solve *n* of 20. I'd like to understand what make this code slow. Am I doing something inefficiently? What steps might I take to rework this code to have it solve *n* of 20 within a minute? --- p.s. I'm new to Clojure. Don't hesitate to mention applicable Clojure idioms of which I may not be aware. -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.