<div dir="ltr">Ah sorry, I didn't notice that you were doing that. The effectiveness of the trick really only comes into play though if you use an analytic solution for finding the sum of the multiples of 3, etc.<div><br></div><div>I haven't tested this code in a while, but here's what I wrote some time ago:</div><div><br></div><div><br></div><div><div>sum2 :: Integer -> Integer -> Integer -> Integer</div><div>sum2 a b ceiling = aX + bX - abX</div><div><span style="white-space:pre-wrap"> </span>where</div><div><span style="white-space:pre-wrap">            </span>aX  = sum1 a ceiling</div><div><span style="white-space:pre-wrap">            </span>bX  = sum1 b ceiling</div><div><span style="white-space:pre-wrap">            </span>abX = sum1 (a * b) ceiling</div><div><br></div><div><span style="white-space:pre-wrap">              </span>sum1 :: Integer -> Integer -> Integer</div><div><span style="white-space:pre-wrap">              </span>sum1 x ceiling = sum1' (even times) times x</div><div><span style="white-space:pre-wrap">                  </span>where</div><div><span style="white-space:pre-wrap">                            </span>times = ceiling `div` x</div><div><br></div><div><span style="white-space:pre-wrap">         </span>sum1' :: Bool -> Integer -> Integer -> Integer</div><div><span style="white-space:pre-wrap">              </span>sum1' True times x = area</div><div><span style="white-space:pre-wrap">                    </span>where</div><div><span style="white-space:pre-wrap">                            </span>area = (times + 1) * (times * x) `div` 2</div><div><br></div><div><span style="white-space:pre-wrap">                </span>sum1' False times x = max + area'</div><div><span style="white-space:pre-wrap">                        </span>where</div><div><span style="white-space:pre-wrap">                            </span>max   = times * x</div><div><span style="white-space:pre-wrap">                               </span>area' = sum1' True (times - 1) x</div></div><div><br></div><div><br></div><div>Please excuse the poor Haskell style as it is quite possibly the first Haskell program I ever wrote.</div><div><br></div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 28, 2015 at 11:15 AM, Jean Lopes <span dir="ltr"><<a href="mailto:hawu.bnu@gmail.com" target="_blank">hawu.bnu@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thats actually what I did...</div><div class="gmail_extra"><br><div class="gmail_quote">2015-01-27 22:11 GMT-02:00 Lyndon Maydwell <span dir="ltr"><<a href="mailto:maydwell@gmail.com" target="_blank">maydwell@gmail.com</a>></span>:<div><div><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I remember that when I had a look at Euler 1 I found that there's a fun solution that should run in "constant" time.<div><br></div><div>You can find the sum of the multiples of 3, add the multiples of 5, and then subtract the multiples of 3*5.</div><div><br></div><div>Is that the kind of thing you're looking for?</div><span><font color="#888888"><div><br></div><div> - Lyndon</div><div><br></div></font></span></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 28, 2015 at 10:57 AM, Jean Lopes <span dir="ltr"><<a href="mailto:hawu.bnu@gmail.com" target="_blank">hawu.bnu@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>I'm not really good at math, maybe I am missing something obvious ?</div><div>Maybe some pointers as of where to start studying math in order to avoid this brute force attempts, at least to help in this particular problem</div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-01-27 21:38 GMT-02:00 Brandon Allbery <span dir="ltr"><<a href="mailto:allbery.b@gmail.com" target="_blank">allbery.b@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><span><span><div class="gmail_quote">On Tue, Jan 27, 2015 at 6:29 PM, Jean Lopes <span dir="ltr"><<a href="mailto:hawu.bnu@gmail.com" target="_blank">hawu.bnu@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span style="font-size:15px;line-height:21.2999992370605px">The problem to be solved: <a href="https://www.hackerrank.com/contests/projecteuler/challenges/euler001" target="_blank">https://www.hackerrank.com/contests/projecteuler/challenges/euler001</a></span></blockquote></div><br></span></span>It's worth remembering that the Euler problems are all about math understanding; often they are designed such that brute force solutions will time out or otherwise fail.<span><font color="#888888"><span><font color="#888888"><br clear="all"><div><br></div>-- <br><div><div dir="ltr"><div>brandon s allbery kf8nh                               sine nomine associates</div><div><a href="mailto:allbery.b@gmail.com" target="_blank">allbery.b@gmail.com</a>                                  <a href="mailto:ballbery@sinenomine.net" target="_blank">ballbery@sinenomine.net</a></div><div>unix, openafs, kerberos, infrastructure, xmonad        <a href="http://sinenomine.net" target="_blank">http://sinenomine.net</a></div></div></div>
</font></span></font></span></div></div><span><font color="#888888">
<br>_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org" target="_blank">Beginners@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/beginners" target="_blank">http://www.haskell.org/mailman/listinfo/beginners</a><br>
<br></font></span></blockquote></div><br></div>
<br>_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org" target="_blank">Beginners@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/beginners" target="_blank">http://www.haskell.org/mailman/listinfo/beginners</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org" target="_blank">Beginners@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/beginners" target="_blank">http://www.haskell.org/mailman/listinfo/beginners</a><br>
<br></blockquote></div></div></div><br></div>
<br>_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org" target="_blank">Beginners@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/beginners" target="_blank">http://www.haskell.org/mailman/listinfo/beginners</a><br>
<br></blockquote></div><br></div></div>