(C언어)프로젝트 오일러(Project Euler) 6. 1부터 100까지 "제곱의 합"과 "합의 제곱"의 차는?

문제


1부터 10까지 자연수를 각각 제곱해 더하면 다음과 같습니다 (제곱의 합).1부터 10을 먼저 더한 다음에 그 결과를 제곱하면 다음과 같습니다 (합의 제곱).따라서 1부터 10까지 자연수에 대해 "합의 제곱"과 "제곱의 합" 의 차이는 3025 - 385 = 2640 이 됩니다.

그러면 1부터 100까지 자연수에 대해 "합의 제곱"과 "제곱의 합"의 차이는 얼마입니까?

코드

#include <stdio.h>

int main(void)
{
    int sum_square = 0, square_sum = 0;        //합의 제곱, 제곱의 합
    int sum = 0;    //합을 임시로 저장할 변수
    int i;    

    for (i = 1; i <= 100; i++)
    {
        square_sum += i * i;
        sum += i;
    }
    sum_square= sum * sum;

    printf("합의 제곱은 %d, 제곱의 합은 %d\n", sum_square, square_sum);
    printf("합의 제곱과 제곱의 합의 차이는 %d\n", sum_square - square_sum);

    return 0;
}
 

정답은 25164150이 나온다.

반복문으로 1부터 100까지의 합과 제곱의 합을 구하고, 합의 제곱을 따로 구해 출력하면 되는 간단한 문제인 것 같다. 시간이 많이 걸리지 않았다.