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 [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.