새소식

💻 Programming (프로그래밍)/C++ | 백준

[C++][백준] - 나머지와 몫이 같은 수 (1843번)

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

1834번: 나머지와 몫이 같은 수

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

www.acmicpc.net

🔔 문제 : 

 

N으로 나누었을 때 나머지와 몫이 값은 모든 자연수의 합을 출력하면 되는 문제입니다.

 

N <= 2,000,000인 자연수 N이 입력으로 주어집니다.


🔔 Kick Point :

여기서 차례대로 무한한 자연수를 모두 다 확인 할 수 있는 방법이 없습니다.

 

다만 어느 자연수 까지 구하면 될까를 곰곰히 생각해보아서 조건으로 삼으면 되는 문제였습니다.

 

i가 1부터 N까지 증가한다고 했을때

(i * (N + i)) 인 자연수가 N으로 나눌때 나머지와 몫이 같은 자연수였습니다.

 

이때 i는 N을 넘어가는 순간, 몫 > 나머지가 확실해지기에 i == N인 조건에 반복문이 끝나도록 조건을 하였습니다.


🔔 Code :

#include <iostream>
using namespace std;

int main() {

	long long int N, i = 0, t = 0 ;
	cin >> N;

	while (++i) {
		if (i == N) break;
		t += N * i + i;
	}
	cout << t;
}

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.