diff --git a/haskell/euler/1.hs b/haskell/euler/1.hs index ce695e4db..7b5277901 100644 --- a/haskell/euler/1.hs +++ b/haskell/euler/1.hs @@ -7,4 +7,10 @@ multiple_of_3_or_15 :: Integer -> Bool multiple_of_3_or_15 x = x `mod` 3 == 0 || x `mod` 5 == 0 +multiple_of_any :: Integer -> [Integer] -> Bool + +multiple_of_any x l = product [ x `mod` n | n <- l ] == 0 + euler1 n = sum [ x | x <- [0..n], multiple_of_3_or_15 x] + +euler1_b n = sum [ x | x <- [0..n], multiple_of_any x [3, 5]]