> 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.

Reply via email to