코딩일지/python 백준 알고리즘

python 백준 알고리즘 11653번: 소인수분해

야언 2022. 9. 15. 15:37

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

 

11653번: 소인수분해

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

www.acmicpc.net

 

 

2부터 시작해서 해당 숫자로 나눌 수 없을때까지 나누고 다음숫자를 넣는 방식으로 구상

n = int(input())

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

 

 

i에 +1 해주면서 반복문을 돌리는 식으로 깔끔하게 구상했다.

 

내 제출

n = int(input())
i = 2

while n != 1:  # n이 1 이상일때
    if n % i == 0:  # 더 나눌 수 없을때까지 나누기
        n = n/i
        print(i)
    else : i += 1  # 더 나눌 수 없어지면 i에 +1해서 다음숫자로 나누기