코딩테스트/Algorithm

[백준 11653] 소인수분해

hu6r1s 2023. 12. 14. 18:41

[Bronze I] 소인수분해 - 11653

문제 링크

성능 요약

메모리: 31252 KB, 시간: 1064 ms

분류

수학, 정수론, 소수 판정

제출 일자

2023년 12월 5일 22:25:06

문제 설명

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

입력

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

출력

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

n = int(input())
result = []
for i in range(2, n+1):
    if n % i == 0:
        while n % i == 0:
            n //= i
            result.append(i)
print(*result, sep="\n")

풀이

약수로 계속 나누면서 리스트에 저장해주고 결과로 리스트를 출력시켜주면 된다.