> Any brute force solution will be relatively slow. The fast solutions > require a doing math to simplify.
Quite right. The fault lies with me rather than with Clojure. I'll rework the code so that it expands to: 2^4 * 3^2 * 5^1 * 7^1 * 11^1 * 13^1 * 17^1 * 19^1 Relevant Stack Overflow post: http://stackoverflow.com/questions/14668272/what-can-i-do-to-speed-up-this-code On Tuesday, October 1, 2013 11:56:48 AM UTC-7, Ben wrote: > > You can actually solve this problem quite directly. I just looked up my > python solution and it's just "print 9*16*5*7*11*13*17*19". > > > On Tue, Oct 1, 2013 at 11:22 AM, David Chambers > <david.ch...@gmail.com<javascript:> > > wrote: > >> 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 clo...@googlegroups.com<javascript:> >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> clojure+u...@googlegroups.com <javascript:> >> 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+u...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/groups/opt_out. >> > > > > -- > Ben Wolfson > "Human kind has used its intelligence to vary the flavour of drinks, which > may be sweet, aromatic, fermented or spirit-based. ... Family and social > life also offer numerous other occasions to consume drinks for pleasure." > [Larousse, "Drink" entry] > > -- -- 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.