diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-08-11 22:36:40 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-08-11 22:36:40 +0200 |
| commit | 6b16d921543a62d880171791d39bcc58560785fa (patch) | |
| tree | d47f5a23a52612107ddcc280c9bd128be7d1070f /haskell/005-smallest_multiple.hs | |
| parent | 7b624de8e3e3637a07364f992c1d7e4185e4a872 (diff) | |
| download | project_euler-6b16d921543a62d880171791d39bcc58560785fa.tar.gz project_euler-6b16d921543a62d880171791d39bcc58560785fa.tar.bz2 project_euler-6b16d921543a62d880171791d39bcc58560785fa.zip | |
haskell problems 001 -> 006
Diffstat (limited to 'haskell/005-smallest_multiple.hs')
| -rw-r--r-- | haskell/005-smallest_multiple.hs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/haskell/005-smallest_multiple.hs b/haskell/005-smallest_multiple.hs new file mode 100644 index 0000000..c395eed --- /dev/null +++ b/haskell/005-smallest_multiple.hs @@ -0,0 +1,23 @@ +-- Smallest multiple + +-- Problem 5 +-- 2520 is the smallest number that can be divided by each of the numbers +-- from 1 to 10 without any remainder. + +-- What is the smallest positive number that is evenly divisible by all of +-- the numbers from 1 to 20? + + +main = do + print (first_divisible 2520 [1..20]) -- takes 16s + +first_divisible :: Int -> [Int] -> Int +first_divisible x divs + | divisible x divs = x + | otherwise = first_divisible (x + 2) divs + +divisible :: Int -> [Int] -> Bool +divisible _ [] = True +divisible x (d:divs) + | x `mod` d /= 0 = False + | otherwise = divisible x divs |
