From 19d85154169d6dfea5f5607fdf5f33ab9a8f37f7 Mon Sep 17 00:00:00 2001 From: Correl Roush Date: Tue, 11 Oct 2011 20:30:29 -0400 Subject: [PATCH] Haskell 006 --- haskell/e006.hs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 haskell/e006.hs diff --git a/haskell/e006.hs b/haskell/e006.hs new file mode 100644 index 0000000..1eca6a9 --- /dev/null +++ b/haskell/e006.hs @@ -0,0 +1,20 @@ +{- What is the difference between the sum of the squares and the square of the sums? + +The sum of the squares of the first ten natural numbers is, + 12 + 22 + ... + 102 = 385 +The square of the sum of the first ten natural numbers is, + (1 + 2 + ... + 10)2 = 552 = 3025 +Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is 3025 385 = 2640. +Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum. +-} + +import Text.Printf + +squarediff n = do + let squares = sum (map (^2) [1..n]) + let sums = sum [1..n] ^ 2 + sums - squares + +main = do + printf "Difference between the sum of the squares and square of the sum of the first ten natural numbers is: %d\n" (squarediff 10 :: Integer) + printf "Difference between the sum of the squares and square of the sum of the first hundred natural numbers is: %d\n" (squarediff 100 :: Integer)