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

heige·2024년 1월 2일
0

BOJ

목록 보기
35/46
post-thumbnail

문제

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

풀이

#include <bits/stdc++.h>
using namespace std;
int main(){
  int n = 0;
  cin >> n ;
  
  if (n == 1) 
    return 0;
  for (int i = 2; i <= n; i++) {
    while (n % i == 0) {
      cout << i << endl;
      n /= i;
    }
  }
  return 0; 
}
  • n을 입력 받는다.
  • n이 1일 경우 아무것도 출력하지 않도록 return 0; 한다.
  • for문으로 가장 작은 소인수인 2부터 시작해 n까지 반복한다.
    * 아라
    • n % i가 0이 나오면 계속 해당 i로 나눈다.
      i를 출력한다.
      n을 i로 나눈다. 그 값을 n에 초기화 한다.
      * n % i가 0이 아니면 i++, 다음으로 넘어간다.
      n = 42일 경우
      42 % 2 = 0
      2 출력
      n /= 2 하면 n = 21
      21 % 2 = 1 (!= 0)
      i = 3으로 넘어간다.
profile
웹 백엔드와 클라우드 정복을 위해 탄탄한 기반을 쌓아가고 있는 예비개발자입니다. 'IT You Up'은 'Eat You Up'이라는 표현에서 비롯되어, IT 지식을 끝까지 먹어치운다는 담고 있습니다.

0개의 댓글