백준 # 11653

DaY·2021년 5월 17일
1

백준

목록 보기
11/21
post-thumbnail

11653

소인수분해

문제

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

입력

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

출력

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


풀이

n을 2부터 n까지 중 가장 먼저 나머지가 0이 되는 수
(그 수와 n을 나눈 몫)을 다시 2부터 몫까지 중 가장 먼저 나머지가 0이 되는 수
...
반복


답안

n = int(input())
result = []

while n != 1 :
    for i in range(2, n + 1) :
        if n % i == 0:
            result.append(i)
            n = n // i
            break

for i in result :
    print(i)

0개의 댓글