Initial commit
This commit is contained in:
commit
f242d2b0df
420 changed files with 62521 additions and 0 deletions
20
2017/02/day2.hs
Normal file
20
2017/02/day2.hs
Normal file
|
@ -0,0 +1,20 @@
|
|||
#!/usr/bin/env stack
|
||||
-- stack --resolver lts-9.14 script
|
||||
|
||||
range :: (Ord a, Num a) => [a] -> a
|
||||
range l = maximum l - minimum l
|
||||
|
||||
divisors :: (Integral a) => [a] -> a
|
||||
divisors [] = 0
|
||||
divisors (x:xs) =
|
||||
case filter (\y -> (x `mod` y == 0) || (y `mod` x == 0)) xs of
|
||||
[] -> divisors xs
|
||||
y:_ -> if y > x then y `div` x
|
||||
else x `div` y
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
contents <- getContents
|
||||
let numbers = map (map read . words) $ lines contents :: [[Int]]
|
||||
putStrLn . show $ sum $ map range numbers
|
||||
putStrLn . show $ sum $ map divisors numbers
|
Loading…
Add table
Add a link
Reference in a new issue