DevKim

[Python] 백준 #11653 소인수분해 본문

알고리즘 PS

[Python] 백준 #11653 소인수분해

on_doing 2021. 1. 14. 20:13
728x90

www.acmicpc.net/problem/11653

 

11653번: 소인수분해

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

www.acmicpc.net

 

#n이하의 소수들만 남기기
def func(n):
    k=0
    List=[1]*(n+1)
    List[0]=0
    List[1]=0
    result=[]
    for i in range(n+1):
        if List[i]==1:           
            for j in range(2*i,n+1,i):
                List[j]=0
    
    for i in range(2,n+1):
        if List[i]==1:
            result.append(i)
            
    return result

n=int(input())
List=func(n)

if n!=1:
    while True:
        if n==1:
            break
        for i in List:
            while True:
                if n%i!=0:
                    break
                elif n%i==0:
                    print(i)
                    n=n//i
                
   
728x90
Comments