Initial commit

This commit is contained in:
Dimitri Lozeve 2024-11-12 21:43:32 +01:00
commit f242d2b0df
420 changed files with 62521 additions and 0 deletions

20
2017/02/day2.hs Normal file
View 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