백준/여러가지 문제들
(c++)백준 11653번: 소인수분해
Nimgnoej
2020. 6. 18. 11:57
https://www.acmicpc.net/problem/11653
11653번: 소인수분해
첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.
www.acmicpc.net

[풀이]
소인수분해 : 합성수를 소수의 곱으로 나타내는 것
굳이 에라토스테네스의 체로 소수를 구하지 않고, 2부터 N을 나누어 가면서 나누어지지 않을경우 +1한 값을 나누는 방법으로 풀 수 있다.
#include <iostream>
using namespace std;
int N;
int p = 2;
void solution() {
cin >> N;
while (N != 1) {
if (N%p == 0) {
cout << p << endl;
N = N / p;
}
else
p++;
}
}
int main() {
solution();
return 0;
}