Algorithm/Project Euler
Problem 6
secretpack
2016. 8. 13. 04:13
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);
}