반응형

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

 

11653번: 소인수분해

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

www.acmicpc.net

문제

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

입력

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

출력

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


# 소인수분해

N = int(input())
num = N
factorizaton = []
i = 2
while num > 1:
    if num % i == 0:
        num = num//i
        factorizaton.append(i)
        continue
    i += 1

for i in factorizaton:
    print(i)

N으로 입력값을 받고 num에 N값을 넣어 num 값을 나눠가며 계산했다

지금 생각해보면 그냥 N을 이용했어도 됐을 것 같다

num이 2부터 돌면서 나머지가 0이 되면(나눠지면) factorization리스트에 값을 추가해주고

최종적으로 factorization을 하나씩 출력해줬다

반응형

+ Recent posts