문제
정수 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;
}
'C++ > 백준 C++' 카테고리의 다른 글
[C/C++] 백준 2908번 상수 (0) | 2023.08.08 |
---|---|
[C/C++] 백준 2558번 A+B - 2 (0) | 2023.08.02 |
[C/C++] 백준 2720번 세탁소 사장 동혁 (0) | 2023.07.18 |
[C/C++] 백준 5086번 배수와 약수 (0) | 2023.07.13 |
[C/C++] 백준 2501번 약수 구하기 (0) | 2023.07.01 |