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.

Reply via email to