Posted at

Project Euler 問題6 「100以下の整数の二乗の和と100以下の整数の和の二乗の差」


問題

100以下の整数をそれぞれ二乗した整数の和と、100以下の整数の和を二乗した整数の差を求めよ。


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.



コード例

sumSquareDifference :: Int -> Int 

sumSquareDifference 0 = error"1以上の整数を入力してください."
sumSquareDifference x = sum[ y^2 | y <- [1..x]] - (sum[1..x])^2

sumSquareDifference' :: Int -> Int
sumSquareDifference' 0 = error"1以上の整数を入力してください."
sumSquareDifference' x = sum(map(^2)[1..x]) - (sum[1..x])^2