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에 저장합니다.
반복문을 돌려줄건데 소인수분해이기 때문에
N을 i로 나눠보고 나누어 떨어지면
i는 출력해주고난 다음
N을 i로 나누었을때의 몫을 N에 초기화합니다.
(N이 6이었다면 2가 출력되고 3이 N에 초기화됨)
만약 나누어떨어지지 않는다면 i를 1씩 증가시켜 가며 진행함으로
소인수분해가 진행되고 N이 1이되는 순간 while문 또한 종료될 것입니다.