C++/BAEKJOON

[C++] BAEKJOON (11653) 소인수분해

sweetnew 2021. 12. 3. 23:05
반응형

문제

정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.

첫째 줄에 정수 N이 주어진다. (1 ≤ N ≤ 10,000,000)

 

N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. (단, N이 1인 경우 아무것도 출력하지 않는다.)

 

결과

#include <iostream>

int main() {

	using namespace std;

	int N;
	cin >> N;
	
	int quotient = N;
	int div = 2;   // 소인수분해하기 위해 최소 소수 '2'부터 나누어준다.

	while (1) {
		if (quotient < div) break;   // 몫이 나누는 값보다 작으면 나누기를 종료한다.
		if (quotient % div == 0) {   // 몫이 0이면,
			quotient /= div;
			cout << div << '\n';     // 나눈 값을 출력한다.
		}
		else {
			++div;
		}
	}

	return 0;
}

 

 

 

 

출처: BAEKJOON

반응형