본문 바로가기

algorithm/백준알고리즘

[백준알고리즘] 11653번: 소인수분해 -Python

728x90

[백준알고리즘] 11653번: 소인수분해 -Python

https://www.acmicpc.net/problem/11653

 

11653번: 소인수분해

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

www.acmicpc.net

 

소인수 분해 문제이다. 그냥 인수만 구하라고 한다면 2부터 sqrt(N)까지 반복하면서 나누어 떨어지는지 확인을 하면서 리스트에 넣으면 된다. 여기서 적용한다면 for i in range(2, sqrt(N)+1) 일 것이다.

파이썬에서 sqrt()는 math 모듈을 import해야한다.

 

 

그런데 그냥 소인수들을 구하라고 했기 때문에 N을 직접 나눠가면서 print 하도록 했다.

 

import sys

N = int(sys.stdin.readline())

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

 

 

 

잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다

728x90