본문 바로가기
🥇Baekjoon Solutions/정수론

[C++] 백준 11653번: 소인수분해

by 코푸는 개발자 2021. 7. 31.
728x90

https://www.acmicpc.net/problem/11653

 

11653번: 소인수분해

첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.

www.acmicpc.net

최초풀이

for문을 활용하여 인수를 찾아줍니다.

#include <iostream>
#include <vector>
using namespace std;

// 다른 공약수문제에서 많이 사용되는 기초문제
int main() {
	int N;
	vector<int>v;
	cin >> N;

	for (int i = 2; i <= N; i++) {
		if (N % i == 0) {
			N /= i;// 몫을 갱신해 주어야함
			v.push_back(i);
			i = 1;// 중복되는 인수가 있을 수 있기 때문에 인수발견 후 초기화 
		}
	}

	for (auto elem : v)
		cout << elem << '\n';

	return 0;
}

 

728x90

댓글