Scroll Top

EULER NO.6 : Sum square difference

euler_portrait

Sum square difference

(1+2+3 … 100)^2 – (1^2+2^2+3^3 … 100^2) 이다.

제곱은 a^2 == a*a 이니 덧셈을 다 하고 for 문 끝나면 제곱해 주면 된다.
제곱 후 덧셈은 b = b + (b*b)하면 된다.

결국 for 문은 한번만 돌리면 된다 :/

package main
import (
        "fmt"
        "time"
)

func main() {
        start := time.Now()
        var a, b, max int = 0, 0, 100

        for i:=1; i<=max; i++ {
                a = a + i // a 는 덧셈 후 제곱
                b = b + (i * i) // b 는 제곱 후 덧셈
        }

        a = a * a
        fmt.Println("덧셈 후 제곱 : ", a)
        fmt.Println("제곱 후 덧셈 : ", b)
        fmt.Println("둘 의 차이 : ", a-b)
        fmt.Println(time.Since(start))
}
┌──(daleji㉿HACK)-[~]
└─$ go run euler6.go
덧셈 후 제곱 :  25502500
제곱 후 덧셈 :  338350
둘 의 차이 :  25164150
31.8µs

Leave a comment

You must be logged in to post a comment.