본문 바로가기
알고리즘/수학

[백준][Python] 11653번 소인수분해

by 임짠짠 2022. 3. 14.
반응형
 

11653번: 소인수분해

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

www.acmicpc.net

 

코드

N = int(input())
a = 2
while N != 1:
    for i in range(a,N+1):
        if N % i == 0:
            N //= i
            print(i)
            break
    a = i

 

설명

가장 작은 소수는 2이기 때문에 a는 처음에 2로 둔다. 2로 더이상 나눠지지 않으면 다음 수로 넘어가게 된다. 이때 a 값을 가장 최근에 나눠진 수로 업데이트해서 for문을 돌릴 범위를 줄여줘서 시간을 단축했다.  

반응형

댓글