오답노트

[수학] BOJ 11653번 소인수분해 본문

C,C++/코딩테스트

[수학] BOJ 11653번 소인수분해

권멋져 2022. 6. 8. 16:18
https://www.acmicpc.net/problem/11653
 

11653번: 소인수분해

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

www.acmicpc.net

- 문제파악

정수 N에 대해서 소인수분해한 결과를 출력하라

 

- 정답

#include "bits/stdc++.h"

using namespace std;

int main()
{
    int n;
    cin>>n;
    
    vector<int> vec;
    
    for(int i = 2; i*i<=n ; i++)
    {
        while(1)
        {
           if(n%i == 0)
           {
               vec.push_back(i);
               n /=i;
           } 
           else
               break;
        }
        
            
    }
    
    if(n != 1)
        vec.push_back(n);
    
    sort(vec.begin(),vec.end());
    
    for(auto a : vec)
        cout<<a<<"\n";
    
    
}