코딩공부/백준알고리즘

[파이썬][백준]11653번-소인수분해

꼴1통 2020. 7. 28. 16:01

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

 

11653번: 소인수분해

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

www.acmicpc.net

 

소인수분해를 하는 문제이다.

 

더 효율적인 코드가 있을것이나 지금 짠 코드는 그렇게 효율적이지 않아 보인다.

 

티스토리를 시작하면서 순차적으로 올리는 중이니 (아, 이런 코드도 있구나!) 정도로 알아주시면 되겠다.

물론 통과는 했지만, 시간이 오래걸렸음 !

 

num = int(input()) #숫자를 받아온다.
i=2
while num!=1:
    if num%i==0: 
        print(i)
        num/=i
    else:
        i+=1

num에 숫자를 받은다음,

i를 2부터 시작하여 지속적으로 num을 i로 나누는 while 문을 돌린다.

이 while문은 num이 다 분해되어 1이되면 빠져나오게 되고,

num과 i를 나누었을대 나머지가 0인 것들에대하여 출력을 하면 된다.