Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 프로그램으로 처음 n개 자연수의 제곱합 구하기

처음 n개 자연수의 제곱합이란?

처음 n개 자연수의 제곱합은 1부터 n까지 각 자연수를 제곱한 값들을 모두 더한 결과입니다.

입력 - 5
출력 - 55
설명 - 12 + 22 + 32 + 42 + 52 = 55

처음 n개 자연수의 제곱합을 구하는 방법은 크게 두 가지가 있습니다.

방법 1: 반복문 사용

가장 직관적인 방법은 반복문을 활용하는 것입니다. 1부터 n까지 숫자를 하나씩 순회하며 각 숫자의 제곱을 구하고, 이를 합계 변수에 계속 누적하면 됩니다.

예제 코드

#include <iostream>
using namespace std;

int main() {
    int n = 5;
    int sum = 0;
    for (int i = 1; i <= n; i++)
        sum += (i * i);
    cout << "처음 " << n << "개 자연수의 제곱의 합은 " << sum << "입니다";
    return 0;
}

실행 결과

처음 5개 자연수의 제곱의 합은 55입니다

방법 2: 수학 공식 사용

반복문은 n이 커질수록 연산 횟수도 함께 늘어납니다. 이때 수학 공식을 사용하면 프로그램의 부담을 크게 줄일 수 있습니다. 처음 n개 자연수의 제곱합 공식은 다음과 같습니다.

n(n+1)(2n+1) / 6

이 공식을 활용하면 반복 연산 없이 단 한 번의 계산만으로 결과를 얻을 수 있어, 시간 복잡도 측면에서 훨씬 효율적입니다.

예제 코드

#include <stdio.h>

int main() {
    int n = 10;
    int sum = (n * (n + 1) * (2 * n + 1)) / 6;
    printf("처음 %d개 자연수의 제곱의 합은 %d입니다", n, sum);
    return 0;
}

실행 결과

처음 10개 자연수의 제곱의 합은 385입니다

정리

반복문 방식은 코드가 직관적이라 이해하기 쉬운 장점이 있고, 공식 방식은 O(1)의 시간 복잡도로 매우 빠르다는 장점이 있습니다. n의 크기가 작다면 반복문으로도 충분하지만, 처리해야 할 데이터가 크거나 성능이 중요한 경우에는 수학 공식을 사용하는 것이 좋습니다.