-- 예전 기록/BOJ

[ BOJ ] 28701 : 세제곱의 합 ( BRONZE 5 ) / C, Python

rejo 2023. 10. 3. 10:50

문제

은하는 수업 때 부터 까지 수의 합과 부터 까지 수의 세제곱의 합과 관련된 다음 공식을 배웠습니다.

  • $ (1+2+⋯+N)^2=1^3+2^3+⋯+N^3$

믿을 수 없었던 은하는 직접 코딩을 해서 검증해 보기로 했습니다. 부터 까지 수의 합과 그 수를 제곱한 수, 또 부터 까지 수의 세제곱의 합을 차례대로 출력하세요.

입력

첫 줄에 문제의 정수 이 주어집니다.

출력

세 줄을 출력하세요.

  • 첫 줄에는 부터 까지 수의 합 을 출력하세요.
  • 둘째 줄에는 부터 까지 수의 합을 제곱한 수 을 출력하세요.
  • 셋째 줄에는 부터 까지 수의 세제곱의 합 을 출력하세요.

풀이 과정

시간 제한이 있는 문제니, 가우스 공식을 활용하여 출력한다.

$(1+2+\cdots+N)^2$ 은 $(N \times (N + 1) \div 2)^2$ 이고, $1^3+2^3+\cdots+N^3$ 은 $(N \times (N + 1) \div 2)^2$  이니 같다.

C

#include <stdio.h>

int main(void) {
    int n; 
    scanf("%d", &n);

    printf("%d\n", n*(n+1)/2);
    printf("%d\n", (n*(n+1)/2)*(n*(n+1)/2));
    printf("%d", (n*(n+1)/2)*(n*(n+1)/2));
    return 0;
}

Python

n = int(input())
res = n*(n+1)//2
print(res)
print(res**2)
print(res**2)