Created
February 4, 2011 03:51
-
-
Save Koitaro/810713 to your computer and use it in GitHub Desktop.
Haskell : Project Euler 1-9
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| module Main where | |
| import Data.List.Ordered (union) | |
| main :: IO () | |
| main = print . sum . takeWhile (1000 >) $ union [3,6..] [5,10..] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| module Main where | |
| import Data.Numbers.Fibonacci | |
| main :: IO () | |
| main = print . sum . filter even . takeWhile (4000000 >) . map fib $ [1..] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| module Main where | |
| import Data.Numbers.Primes(primeFactors) | |
| main :: IO () | |
| main = print . maximum . primeFactors $ 600851475143 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| module Main where | |
| import Control.Applicative | |
| import Data.Ord | |
| import Data.List.Ordered (mergeAllBy) | |
| isPalindrome :: Show a => a -> Bool | |
| isPalindrome = (==) <*> reverse <$> show | |
| main :: IO () | |
| main = print $ solve [(x *) <$> xs | x <- xs] where | |
| solve = head . filter isPalindrome . mergeAllBy (comparing negate) | |
| xs = [999,998..100] :: [Integer] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| module Main where | |
| main :: IO () | |
| main = print . foldl1 lcm $ [1..20] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| module Main where | |
| import Control.Applicative | |
| main :: IO () | |
| main = print . f $ [1..100] where | |
| f = (-) <$> (^ 2) . sum <*> sum . map (^ 2) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| module Main where | |
| import Data.Numbers.Primes(primes) | |
| main :: IO () | |
| main = print $ primes !! 10000 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| module Main where | |
| import List | |
| import Char | |
| main :: IO () | |
| main = print . maximum . map (product . take 5) . tails $ data008 | |
| data008 :: [Int] | |
| data008 = map digitToInt . foldl1 (++) $ [ | |
| "73167176531330624919225119674426574742355349194934", | |
| "96983520312774506326239578318016984801869478851843", | |
| "85861560789112949495459501737958331952853208805511", | |
| "12540698747158523863050715693290963295227443043557", | |
| "66896648950445244523161731856403098711121722383113", | |
| "62229893423380308135336276614282806444486645238749", | |
| "30358907296290491560440772390713810515859307960866", | |
| "70172427121883998797908792274921901699720888093776", | |
| "65727333001053367881220235421809751254540594752243", | |
| "52584907711670556013604839586446706324415722155397", | |
| "53697817977846174064955149290862569321978468622482", | |
| "83972241375657056057490261407972968652414535100474", | |
| "82166370484403199890008895243450658541227588666881", | |
| "16427171479924442928230863465674813919123162824586", | |
| "17866458359124566529476545682848912883142607690042", | |
| "24219022671055626321111109370544217506941658960408", | |
| "07198403850962455444362981230987879927244284909188", | |
| "84580156166097919133875499200524063689912560717606", | |
| "05886116467109405077541002256983155200055935729725", | |
| "71636269561882670428252483600823257530420752963450"] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| module Main where | |
| main :: IO () | |
| main = print . head $ [a*b*c | |
| | a <- [1..div 1000 3] | |
| , b <- [a..div (1000-a) 2] | |
| , c <- [1000-a-b] | |
| , a^2 + b^2 == c^2 | |
| ] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment