https://www.acmicpc.net/problem/11653
입력받은 숫자를 소인수분해하여 오름차순으로 출력하는 문제이다.
#include <iostream>
#include <string>
using namespace std;
int main(){
int n;
cin >> n;
int prime = 2;
while (n > 1){
if(n % prime == 0){
cout << prime << endl;
n /= prime;
} else{
prime++;
}
}
}
가장 작은 소수인 2부터 시작해서 계속 나누면 된다.
더 이상 해당 숫자로 나누어지지 않을 때 까지 나누므로, 소수가 아닌 숫자로 나눌 경우는 없다.
'알고리즘 > 백준' 카테고리의 다른 글
백준 3009번 네 번째 점 [C++] (1) | 2023.12.04 |
---|---|
백준 1085번 직사각형에서 탈출 [C++] (0) | 2023.12.02 |
백준 2869번 달팽이는 올라가고 싶다 [C++] (1) | 2023.11.26 |
백준 1193번 분수찾기 [C++] (0) | 2023.11.26 |
백준 2292번 벌집 [C++] (0) | 2023.11.26 |