[백준] 소인수분해

가오리·2023년 2월 12일
0

coding-test

목록 보기
51/107
post-thumbnail

11653번: 소인수분해

🔗 문제

정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.

입력

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

$ test1
72

$ test2
3

$ test3
6

$ test4
2

$ test5
9991


출력

N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다.

$ test1
2
2
2
3
3

$ test2
3

$ test3
2
3

$ test4
2

$ test5
97
103


💡풀이 방법

소인수분해 : 1보다 큰 자연수를 소인수들만의 곱으로 나타내는 것

  • 소인수분해는 우리가 흔히 아는 거꾸로 뒤집어서 하는 나누기를 말한다.
  • 1이 아닌 2부터 시작해서 받은 입력값이 나누어지지 않을 때까지 만든다.
  • 2부터 시작해서 2로 나눌 수 없다면 숫자를 1씩 크게 만든다.


💻 코드

# [11653] 소인수분해
divideNumber = int(input())
i = 2
while divideNumber != 1:
    if divideNumber % i == 0:
        print(i)
        divideNumber //= i 
    else:
        i += 1
profile
가오리의 코딩일기

0개의 댓글