문제:

N으로 나누었을 때 나머지와 몫이 같은 모든 자연수의 합을 구하는 프로그램을 작성하시오. 예를 들어 N=3일 때, 나머지와 몫이 모두 같은 자연수는 4와 8 두 개가 있으므로, 그 합은 12이다.

 

입력:

첫째 줄에 2,000,000 이하의 자연수 N이 주어진다.

 

출력:

첫 줄에 구하고자 하는 수를 출력한다.

 

풀이방법:

몫과 나머지가 같다고 가정한 뒤에 역으로 그 자연수 값을 찾도록 하면 된다. 나머지가 나올 수 있는 경우의 수는 N일 때 0~N-1까지 있다. 따라서 몫과 나머지가 같은 수는 i*(N)+i, i는 0부터 N-1까지의 수로 구할 수 있다. 이는 반복문 하나만 사용하면 구할 수 있다.

1
2
3
4
5
n=int(input())
summation=0
for i in range(1,n):
    summation+=(i*n+i)
print(summation)
cs

문제링크:

https://www.acmicpc.net/problem/1834

 

'Algorithm > Python' 카테고리의 다른 글

[BOJ]2851. 슈퍼 마리오  (0) 2019.10.13
[BOJ]17144. 미세먼지 안녕!  (0) 2019.10.12
[BOJ]1357. 뒤집힌 덧셈  (0) 2019.10.08
[BOJ]1629. 곱셈  (0) 2019.10.07
[BOJ]1789. 수들의 합  (0) 2019.10.06

+ Recent posts