<div dir="ltr"><div><font color="#444444" face="Calibri, sans-serif"><span style="font-size:15px;line-height:21.2999992370605px">Hello everyone! I'm learning Haskell by solving simple exercises on www.hackerrank.com...</span></font></div><div><font color="#444444" face="Calibri, sans-serif"><span style="font-size:15px;line-height:21.2999992370605px"><br></span></font></div><div><font color="#444444" face="Calibri, sans-serif"><span style="font-size:15px;line-height:21.2999992370605px"><br></span></font></div><div><font color="#444444" face="Calibri, sans-serif"><span style="font-size:15px;line-height:21.2999992370605px">The problem to be solved: <a href="https://www.hackerrank.com/contests/projecteuler/challenges/euler001">https://www.hackerrank.com/contests/projecteuler/challenges/euler001</a></span></font></div><div><font color="#444444" face="Calibri, sans-serif"><span style="font-size:15px;line-height:21.2999992370605px"><br></span></font></div><div><font color="#444444" face="Calibri, sans-serif"><span style="font-size:15px;line-height:21.2999992370605px">as stated in this section: <a href="https://www.hackerrank.com/environment">https://www.hackerrank.com/environment</a></span></font></div><div><font color="#444444" face="Calibri, sans-serif"><span style="font-size:15px;line-height:21.2999992370605px">constraints</span></font></div><div><font color="#444444" face="Calibri, sans-serif"><span style="font-size:15px;line-height:21.2999992370605px">version: haskell-plataform 2013.2.0.0</span></font></div><div><font color="#444444" face="Calibri, sans-serif"><span style="font-size:15px;line-height:21.2999992370605px">time limit: 5 seconds</span></font></div><div><font color="#444444" face="Calibri, sans-serif"><span style="font-size:15px;line-height:21.2999992370605px">memory: 512mb</span></font></div><div><font color="#444444" face="Calibri, sans-serif"><span style="font-size:15px;line-height:21.2999992370605px"><br></span></font></div><div><font color="#444444" face="Calibri, sans-serif"><span style="font-size:15px;line-height:21.2999992370605px">I keep getting "timed out" on some test cases (#2 and #3). Trying to process 10^5 numbers between 1 to 10^9 <b><i><u>seems</u></i></b> impossible to me (Please, prove me wrong!)</span></font></div><div style="line-height:21.2999992370605px;color:rgb(68,68,68);font-family:Calibri,sans-serif;font-size:15px"><br style="line-height:21.2999992370605px"></div><div style="line-height:21.2999992370605px;color:rgb(68,68,68);font-family:Calibri,sans-serif;font-size:15px">here is my code: </div><div style="line-height:21.2999992370605px;color:rgb(68,68,68);font-size:15px"><div style="line-height:21.2999992370605px"><font style="line-height:normal" face="monospace, monospace">import Data.Maybe</font></div><div style="line-height:21.2999992370605px"><font style="line-height:normal" face="monospace, monospace">import qualified Data.ByteString.Char8 as B</font></div><div style="line-height:21.2999992370605px"><font style="line-height:normal" face="monospace, monospace"><br style="line-height:21.2999992370605px"></font></div><div style="line-height:21.2999992370605px"><font style="line-height:normal" face="monospace, monospace">nearestMultipleOf :: Integral a => a -> a -> a</font></div><div style="line-height:21.2999992370605px"><font style="line-height:normal" face="monospace, monospace">nearestMultipleOf n k = if mod n k == 0 then n else nearestMultipleOf (n-1) k</font></div><div style="line-height:21.2999992370605px"><font style="line-height:normal" face="monospace, monospace"><br style="line-height:21.2999992370605px"></font></div><div style="line-height:21.2999992370605px"><font style="line-height:normal" face="monospace, monospace">sumMultiplesOf :: Integral a => a -> a -> a</font></div><div style="line-height:21.2999992370605px"><font style="line-height:normal" face="monospace, monospace">sumMultiplesOf n k = foldl (+) 0 [k,k*2..nearest]</font></div><div style="line-height:21.2999992370605px"><font style="line-height:normal" face="monospace, monospace">    where nearest = nearestMultipleOf n k</font></div><div style="line-height:21.2999992370605px"><font style="line-height:normal" face="monospace, monospace">    </font></div><div style="line-height:21.2999992370605px"><font style="line-height:normal" face="monospace, monospace">solution :: Integral a => a -> a</font></div><div style="line-height:21.2999992370605px"><font style="line-height:normal" face="monospace, monospace">solution n = s03 + s05 - s15</font></div><div style="line-height:21.2999992370605px"><font style="line-height:normal" face="monospace, monospace">    where s03 = sumMultiplesOf (n-1) 3</font></div><div style="line-height:21.2999992370605px"><font style="line-height:normal" face="monospace, monospace">          s05 = sumMultiplesOf (n-1) 5</font></div><div style="line-height:21.2999992370605px"><font style="line-height:normal" face="monospace, monospace">          s15 = sumMultiplesOf (n-1) 15</font></div><div style="line-height:21.2999992370605px"><span style="line-height:22.7199993133545px;font-size:12pt"><font style="line-height:normal" face="monospace, monospace"> </font></span></div><div style="line-height:21.2999992370605px"><font style="line-height:normal" face="monospace, monospace">main = do</font></div><div style="line-height:21.2999992370605px"><font style="line-height:normal" face="monospace, monospace">    c <- B.getContents</font></div><div style="line-height:21.2999992370605px"><font style="line-height:normal" face="monospace, monospace">    let ns = tail $ B.lines c</font></div><div style="line-height:21.2999992370605px"><font style="line-height:normal" face="monospace, monospace">    putStr $ unlines $ map show $ map (solution . fst . fromJust . B.readInt) ns</font></div></div><div style="line-height:21.2999992370605px;color:rgb(68,68,68);font-family:Calibri,sans-serif;font-size:15px"><br style="line-height:21.2999992370605px"></div><div style="line-height:21.2999992370605px;color:rgb(68,68,68);font-family:Calibri,sans-serif;font-size:15px"><font face="Arial, sans-serif" style="line-height:normal">as always, any input is really welcome!</font></div></div>