Skip to content

Instantly share code, notes, and snippets.

@kingori
Created April 21, 2013 06:33
Show Gist options
  • Save kingori/5428701 to your computer and use it in GitHub Desktop.
Save kingori/5428701 to your computer and use it in GitHub Desktop.
euler 6
class Euler6 {
def squareSum(maxNum:Int) = (1 to maxNum).map( num => num * num).sum
def sumSquare(maxNum:Int) = {
val sum = (maxNum * (maxNum+1) /2)
sum * sum
}
def diff(maxNum:Int) = Math.abs(squareSum(maxNum) - sumSquare(maxNum))
}
object Euler6 extends App {
// 1부터 10까지 자연수를 각각 제곱해 더하면 다음과 같습니다 (제곱의 합).
//
// 12 + 22 + ... + 102 = 385
// 1부터 10을 먼저 더한 다음에 그 결과를 제곱하면 다음과 같습니다 (합의 제곱).
//
// (1 + 2 + ... + 10)2 = 552 = 3025
// 따라서 1부터 10까지 자연수에 대해 "합의 제곱"과 "제곱의 합" 의 차이는 3025 - 385 = 2640 이 됩니다.
//
// 그러면 1부터 100까지 자연수에 대해 "합의 제곱"과 "제곱의 합"의 차이는 얼마입니까?
println(new Euler6().diff(10))
println(new Euler6().diff(100))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment