C++/백준 C++

[C/C++] 백준 11653번 소인수분해

CE : 하랑 2023. 7. 27. 12:31

 

 

 

문제

 

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

 

 

 

 

입력

 

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

ex)

72
3
9991

 

 

출력

 

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

ex)

2
2
2
3
3
3
97
103

 



 

코드

 

#include<iostream>

using namespace std;

class exam {

public:
	void test(int n) {

		int i=0;
		int num = 2;

		while (true) {
			if (n % num == 0) {
				n = n / num;
				cout<<num<<"\n";
			}
			else {
				num = num + 1;
			}

			if (n == 1) {
				break;
			}
		}
	}
};

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

	exam ex = exam();

	ex.test(N);

	return 0;
}