What I Learned/Algorithm Practice

[백준 - python] 11653번: 소인수분해

Interrobang 2022. 9. 25. 16:05

<문제 링크>

 

11653번: 소인수분해

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

www.acmicpc.net

 

<문제 풀이>

N = int(input())

if N == 1:
    print('')

for i in range(2, N+1):
    if N % i == 0:
        while N % i == 0:
            print(i)
            N = N / i

11653 입출력 예시

*key point: 소인수분해의 경우 2부터 불가능할 때까지 반복해서 나누어준 뒤 나누는 수를 1씩 증가시켜 반복하면 하면 배수의 경우가 자연스럽게 사라지므로 쉽게 수행된다.