1부터 10까지 자연수를 각각 제곱해 더하면 다음과 같습니다.

12 + 22 + ... + 102 = 385

1부터 10을 먼저 더한 다음에 그 결과를 제곱하면 다음과 같습니다.

(1 + 2 + ... + 10)2 = 552 = 3025

따라서 1부터 10까지 자연수에 대해 "합의 제곱"과 "제곱의 합" 의 차이는 3025 - 385 = 2640 이 됩니다. 그러면 1부터 100까지 자연수에 대해 "합의 제곱"과 "제곱의 합"의 차이는 얼마입니까?




개인적으로 앞에서 풀었던 문제들보다는 생각을 덜 한것 같다.

<math.h> 헤더파일 안의 pow( ) 함수를 이용해서 쉽게 풀 수 있다.


#include <stdio.h>

#include <math.h>


int main()

{

int jhab = 0, habj = 0;

int i;


for (i = 1; i <= 100; i++) {

jhab += pow(i, 2);

}

for (i = 1; i <= 100; i++) {

habj += i;

}

habj = pow(habj, 2);


printf("%d\n", habj - jhab);

} 

'Algorithm > Project Euler' 카테고리의 다른 글

Problem 5  (0) 2016.08.13
Problem 3  (0) 2016.08.12
Problem 2  (0) 2016.08.12
problem 1  (0) 2016.08.12

+ Recent posts