mirror of
https://github.com/correl/euler.git
synced 2024-11-23 19:19:53 +00:00
Haskell 001
This commit is contained in:
parent
ab1b1b95bf
commit
32f83b946f
1 changed files with 20 additions and 0 deletions
20
haskell/e001.hs
Normal file
20
haskell/e001.hs
Normal file
|
@ -0,0 +1,20 @@
|
|||
{- Add all the natural numbers below one thousand that are multiples of 3 or 5.
|
||||
|
||||
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
|
||||
Find the sum of all the multiples of 3 or 5 below 1000.
|
||||
-}
|
||||
|
||||
import Text.Printf
|
||||
|
||||
multiples :: (Integral a) => a -> a
|
||||
multiples max =
|
||||
if max < 3 then
|
||||
0
|
||||
else
|
||||
if (max `mod` 5 == 0 || max `mod` 3 == 0) then
|
||||
max + multiples (max - 1)
|
||||
else multiples (max - 1)
|
||||
|
||||
main = do
|
||||
printf "Sum of multiples below 10: %d\n" (multiples 9 :: Int)
|
||||
printf "Sum of multiples below 1000: %d\n" (multiples 999 :: Int)
|
Loading…
Reference in a new issue