본문으로 바로가기

#include <bits/stdc++.h>
using namespace std; 
int main()
{
	ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
	int n;
	cin >> n;
	 
	for (int i = 2; i * i <= n; i++) {
		while (n%i==0) {
			cout << i << "\n";
			n /= i;
		}
	}
	if (n > 1) {
		cout << n;
	}
}
 

n을 소인수분해 했을 때, 나타날 수 있는 가장 큰 값은 루트 n이다.

이점을 명심하고 문제를 푼다면 쉽게 풀 수 있다.