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
반응형