문제링크
https://www.acmicpc.net/problem/1834
문제
N으로 나누었을 때 나머지와 몫이 같은 모든 자연수의 합을 구하는 프로그램을 작성하시오. 예를 들어 N=3일 때, 나머지와 몫이 모두 같은 자연수는 4와 8 두 개가 있으므로, 그 합은 12이다.
입력
첫째 줄에 2,000,000 이하의 자연수 N이 주어진다.
출력
첫 줄에 구하고자 하는 수를 출력한다.
해석
N = 2 -> 3
N = 3 -> 4, 8
N = 4 -> 5, 10, 15
N+1의 배수가 N-1개인 것을 알 수 있다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#include <iostream>
using namespace std;
// N = 2 -> 3
// N = 3 -> 4 8
// N = 4 -> 5 10 15
// N+1의 배수가 N-1개
int main() {
long long n;
cin >> n;
long long res = 0;
for (int i = 1; i <= n - 1; i++) {
res = res + (n + 1) * i;
}
cout << res;
}
|
cs |
Memo
필기나 정리하면서 푸는 습관을 들이면 좋을 것 같다.