이 급수의 합을 구하기 위해 먼저 급수가 가진 패턴을 분석해 보겠습니다.
주어진 급수는 다음과 같습니다.
2, 10, 30, 68, …
급수 분석
예를 들어 n = 6일 때 급수의 합은 다음과 같습니다.
n = 6일 때 합 = 462
주어진 급수를 자세히 살펴보면, 이 급수는 두 개의 급수를 더한 형태임을 알 수 있습니다. 첫 번째는 자연수 n의 항들로 이루어진 급수이고, 두 번째는 자연수 n의 세제곱(n³)으로 이루어진 급수입니다. 즉, 각 항을 다음과 같이 분리할 수 있습니다.
2, 10, 30, 68 = (1 + 1³), (2 + 2³), (3 + 3³), (4 + 4³)
따라서 전체 급수의 합은 다음과 같이 표현할 수 있습니다.
합 = 2 + 10 + 30 + 68 … = (1 + 2 + 3 + 4 …) + (1³ + 2³ + 3³ + 4³ …)
공식 유도
이러한 구조를 바탕으로, 급수의 합을 계산하는 공식은 두 급수 각각의 합 공식을 더한 형태로 정의됩니다.
위 급수의 합을 구하는 수학적 공식은 다음과 같습니다.
합 = n × (n + 1) / 2 + (n × (n + 1) / 2)²
여기서 n × (n + 1) / 2는 처음 n개 자연수의 합이며, 그 값을 제곱하면 처음 n개 자연수의 세제곱의 합과 같습니다. 두 값을 더하면 원하는 급수의 총합을 손쉽게 구할 수 있습니다.
C 코드 예제
#include <stdio.h>
int main() {
int n = 6;
int sum = (n*(n + 1)/2) + (n*(n+1)/2)*(n*(n+1)/2);
printf("%d까지 급수의 합은 %d입니다", n, sum);
return 0;
}실행 결과
6까지 급수의 합은 462입니다
이처럼 반복문 없이 하나의 수학 공식만으로도 급수의 합을 O(1) 시간 복잡도로 빠르게 계산할 수 있습니다.