[ ALGORITHM ]/[ 백 준 ]

[BAEKJOON] 11653번 소인수분해

HiStar__ 2020. 7. 11. 15:55

문 제

 

소 스  코 드

#include <iostream>
#include <vector>

int main() {
	int N;
	std::cin >> N;

	int primenum{ 2 };
	std::vector<int> numbers;
	numbers.reserve(10'000);

	while (1 != N) {
		if (0 == (N % primenum)) {
			N /= primenum;
			numbers.emplace_back(primenum);
		}
		else {
			++primenum;
		}
	}


	for (const auto& a : numbers) std::cout << a << '\n';

	return 0;
}

 

풀 이

 

  • 소인수 분해는 2를 제외한 특정 홀수로 이루어져 있다.

  • 2부터 증가시켜 나눈다면 소수로 이루어진 소인수 분해를 할 수 있다.

 

출 력 값

 

 

문 제  출 처

문제 링크 : [ BAEKJOON ] : https://www.acmicpc.net/problem/11653

 

11653번: 소인수분해

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

www.acmicpc.net