본문으로 바로가기

백준 11653 - 소인수분해

category BOJ 백준기타 4년 전

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

 

11653번: 소인수분해

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

www.acmicpc.net

 

고려사항

  • 나누는 수를 2부터 시작해서 나눈 결과가 0이면 출력한다.
  • 나머지가 0이 아니면 d를 1씩 증가하며 반복하고, num 이 1일 때 완료한다.
  • 작은 소수부터 나눗셈을 하게 되는 방식이라, 증가된 d가 4와 같이 소수가 아닐 시에는
    이미 4의 약수인 2로 나눗셈을 진행했었기 때문에 나눠지는 일이 없기 때문에 다시 d를 증가시키게 된다.
#include <iostream>
using namespace std;
int main() {
int num, d = 2;
cin>>num;
while(num != 1){
if(num % d == 0){
cout<<d<<"\n";
num /= d;
}else{
++d;
}
}
return 0;
}

BOJ 백준기타카테고리의 다른글

백준 02609 - 최대공약수와 최소공배수  (0) 2020.12.18
백준 02252 - 줄 세우기  (0) 2020.11.27
백준 04195 - 친구 네트워크  (0) 2020.11.26
백준 11438 - LCA 2  (0) 2020.11.25
백준 01976 - 여행 가자  (0) 2020.11.23