diff --git a/Haskell/p009.hs b/Haskell/p009.hs new file mode 100644 index 0000000..a95d0c3 --- /dev/null +++ b/Haskell/p009.hs @@ -0,0 +1,20 @@ +-- A Pythagorean triplet is a set of three natural numbers, a < b < c, for which, +-- +-- a2 + b2 = c2 +-- +-- For example, 32 + 42 = 9 + 16 = 25 = 52. +-- +-- There exists exactly one Pythagorean triplet for which a + b + c = 1000. +-- +-- Find the product abc. + +pythagoreanTriplet :: (Integral a) => a -> (a, a, a) +pythagoreanTriplet n = head [ (x, y, z) | x <- [1..n], y <- [1..n], z <- [1..n], x + y + z == n, x^2 + y^2 == z^2] + +prodTriplet :: (Integral a) => (a, a, a) -> a +prodTriplet (x, y, z) = x * y * z + +main = do + let result = prodTriplet $ pythagoreanTriplet 1000 + putStrLn $ "Project Euler, Problem 9\n" + ++ "Answer: " ++ (show result) diff --git a/Haskell/p010.hs b/Haskell/p010.hs new file mode 100644 index 0000000..06e4f8f --- /dev/null +++ b/Haskell/p010.hs @@ -0,0 +1,13 @@ +-- The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17. +-- +-- Find the sum of all the primes below two million. + +import ProjectEuler (isPrime) + +sumPrimes :: (Integral a) => a -> a +sumPrimes n = sum [ x | x <- [1..n], isPrime(x) ] + +main = do + let result = sumPrimes 2000000 + putStrLn $ "Project Euler, Problem 10\n" + ++ "Answer: " ++ (show result)