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

 

11653번: 소인수분해

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

www.acmicpc.net

풀이

소인수분해를 구현해주는 문제이다.

나누는 값을 1씩 추가해서 더 이상 나눌 수 없을 때까지 나눠준다.

 

코드

# 11653번 소인수분해
n = int(input())
ans = []
def calc(c_n):
    for i in range(2, c_n):
        if n % i == 0:
            c_n = c_n // i
            ans.append(i)
            break
    return c_n

if n != 1:
    while True:
        t = calc(n)
        if n == t:
            ans.append(n)
            break
        n = t

print("\n".join(list(map(str, sorted(ans)))))

 

출력결과

개발자 성현