본문 바로가기
코딩테스트 문제풀이(Python)

[백준] 11653번 문제풀이 (파이썬)

by chanfficial 2022. 7. 5.

11653. 소인수분해

 

 

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

 

 

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

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

 

 

ex)

입력 :

72

출력 :

2
2
2
3
3

 

 

 

 

풀이

n = int(input())

# 2부터 하나씩 나눠보기
for i in range(2, n+1):
    if n % i == 0:
    	#해당 숫자로 나눌 수 없을 때까지 나누기
        while n % i == 0:
            print(i)
            n = n / i

 

- 정수 n 을 입력받아 2 부터 하나씩 나누고 만약 나눈 나머지가 0 이면, 그 숫자를 출력한 다음 해당 숫자로 계속 나누며 0이 나올 때 까지 나눗셈을 반복하여 소인수분해 하도록 했다.