Sum multiples of 3 and 5: Difference between revisions
m
→{{header|Haskell}}: Tidied
m (more idiomatic point-free definition of triangular) |
m (→{{header|Haskell}}: Tidied) |
||
Line 1,612:
Also a method for calculating sum of multiples of any list of numbers.
<lang haskell>import Data.List (nub)
sum35 :: Integer -> Integer
sum35 n = f 3 + f 5 - f 15
where
let f = sumMul n▼
sumMul :: Integer -> Integer -> Integer
sumMul n f = f * n1 * (n1 + 1) `div` 2
where
---------------------------
main :: IO ()▼
main =▼
mapM_▼
print▼
[ sum35 1000,▼
---------------- FOR VARIABLE LENGTH INPUTS --------------
pairLCM :: [Integer] -> [Integer]
pairLCM [] = []
pairLCM (x : xs) = (lcm x <$> xs)
sumMulS :: Integer -> [Integer] -> Integer
sumMulS _ [] = 0
sumMulS n s =
)
(nub s)
where
▲--------------------------- TEST ---------------------------
g = sumMulS n</lang>
▲main :: IO ()
▲main =
▲ mapM_
▲ print
▲ [ sum35 1000
▲ , sum35 100000000000000000000000000000000
▲ , sumMulS 1000 [3, 5]
▲ , sumMulS 10000000 [2, 3, 5, 7, 11, 13]
▲ ]</lang>
{{out}}
<pre>233168
|