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

Python으로 처음 n개 자연수의 제곱합 구하기: 두 가지 방법 총정리

이 글에서는 주어진 문제를 해결하기 위한 접근 방법과 풀이 과정을 자세히 알아보겠습니다.

문제 정의

양의 정수 N이 입력으로 주어졌을 때, 1² + 2² + 3² + ... + N² 의 값을 계산해야 합니다.

이 문제는 크게 두 가지 방법으로 해결할 수 있습니다.

  • 반복문을 이용한 곱셈·덧셈 연산
  • 수학 공식 활용

방법 1: 반복문을 이용한 곱셈·덧셈 연산

1부터 n까지 반복문을 실행하면서 각 i(1 ≤ i ≤ n)에 대해 i² 값을 구하고, 그 결과를 합계 변수 sm에 차례로 더하는 방식입니다. 코드가 직관적이라 초보자도 쉽게 이해할 수 있습니다.

예제 코드

def sqsum(n):
    sm = 0
    for i in range(1, n+1):
        sm = sm + pow(i, 2)
    return sm

# 메인 부분
n = 5
print(sqsum(n))

실행 결과

55

방법 2: 수학 공식 활용

자연수 제곱의 합은 다음과 같은 잘 알려진 공식으로 구할 수 있습니다.

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

이 공식을 사용하면 반복문 없이 O(1)의 시간 복잡도로 즉시 결과를 얻을 수 있습니다. 따라서 n이 매우 큰 경우에도 빠르게 계산할 수 있어 성능 면에서 큰 장점이 있습니다.

예제 코드

def squaresum(n):
    return (n * (n + 1) * (2 * n + 1)) // 6

# 프로그램 실행
n = 10
print(squaresum(n))

실행 결과

385

결론

이 글에서는 처음 n개 자연수의 제곱합을 구하는 두 가지 방법을 살펴보았습니다. 반복문 방식은 로직이 명확하고 이해하기 쉬운 반면, 수학 공식을 활용하면 훨씬 빠르고 효율적으로 결과를 계산할 수 있습니다. 입력 크기와 상황에 맞게 적절한 방법을 선택해 사용하시기 바랍니다.