Study hard

(c++)백준 11653번: 소인수분해 본문

백준/여러가지 문제들

(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;
}