Haskell 001

This commit is contained in:
Correl Roush 2011-10-10 22:57:41 -04:00
parent ab1b1b95bf
commit 32f83b946f

20
haskell/e001.hs Normal file
View 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)