본문 바로가기

Problem Solving/Baekjoon Online Judge

<수학2> 11653번 소인수분해 with 파이썬

 

문제

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

입력

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

출력

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

정답비율

53.654%

 

 

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

  while문을 통해 N이 1이 될 때 까지 분해시켜주었다. for문에서는 2부터 N까지 숫자를 이용하여 소인수분해를 진행시켰다. 나머지가 0인경우 소인수로 판단하여 출력시키고, N을 분해된 값으로 변환 시켰다. 이 때 i로 나누면서 float형식이 되므로 int로 변환시켜 다음 for문에서 재사용되도록 하였다.

 

 


 

 

 

참고

 

 

11653번: 소인수분해

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

www.acmicpc.net