Baekjoon Online Judge(BOJ)

Baekjoon 11653번 : 소인수분해 (Python)

Dev.sleep_soo 2024. 6. 13. 00:20

 

Question

 

 

 

Answer

 

N = int(input())
i = 2
while N != 1:  # 이 1이면 더이상 나눌 수 없으니까 소인수분해 끝
    if N % i == 0:  # N이 i로 나누어 떨어지면 i출력 후 N은 몫이 남음
        print(i)
        N = N // i
    else:  # N이 i로 나누어떨어지지 않으면 소인수분해가 불가하므로 i를 하나 늘려서 다시 진행
        i += 1
        continue

 

 

Explanation

 

소인수분해할 숫자를 입력받아 int형으로 N에 저장합니다.

반복문을 돌려줄건데 소인수분해이기 때문에

Ni로 나눠보고 나누어 떨어지면 

i는 출력해주고난 다음

Ni로 나누었을때의 N에 초기화합니다.

(N이 6이었다면 2가 출력되고 3이 N에 초기화됨)

만약 나누어떨어지지 않는다면 i를 1씩 증가시켜 가며 진행함으로

소인수분해가 진행되고 N이 1이되는 순간 while문 또한 종료될 것입니다.