プロジェクトオイラー問6

Problem 6 「二乗和の差」 †
最初の10個の自然数について, その二乗の和は,

1^2 + 2^2 + ... + 10^2 = 385
最初の10個の自然数について, その和の二乗は,

(1 + 2 + ... + 10)^2 = 3025
これらの数の差は 3025 - 385 = 2640 となる.

同様にして, 最初の100個の自然数について二乗の和と和の二乗の差を求めよ.

X is (50*101)^2-(100*101*201)/6.



haskell解法 入力として100を渡す
main=do
     n <- getLine
     putStrLn $ show . g $ read n

g :: Int->Int
g n= (f2 n) - (f n)
 
f::Int->Int
f n=sum [x*x|x<-[1..n]]

f2::Int->Int
f2 n=(sum [x | x<-[1..n]]) ^ 2
最終更新:2018年04月18日 09:32