Notice
Recent Posts
Recent Comments
Link
관리 메뉴

윤일무이

[백준-Python] 11653번: 소인수분해 본문

🥧 Python/⚙️ 코딩테스트

[백준-Python] 11653번: 소인수분해

썸머몽 2023. 2. 15. 13:54
728x90
 

11653번: 소인수분해

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

www.acmicpc.net

 

풀이

첫째 줄에 정수 num을 입력하고

소인수분해를 한 결과가 한 줄씩 오름차순으로 나오면 된다

이제 보니 오름차순이 중요하군

 

num = int(input())

이 num을 소인수분해하려면, 2부터 1씩 더해 나눠지는지 확인하면 된다.

num이 어떤 수로 나눴을 때 0이 나오는지 보고, 나오지 않으면 어떤 수 +1 을 해서 0이 나올 때까지 돌린다.

 

num을 12로 예시를 들어보자.

 

12 % 2 == 0:

12 =/ 2

6 =/ 2

3

 

2

2

3

이렇게 출력되면 된다.

 

소인수분해는 더 이상 나눠지지 않을 때까지 나누고 그 나눠진 몫과 마지막 나머지를 보여주는 거라서

이렇게 쓰면 되는 것 같다. (난 수포자가 아니었는데... 수학이 날 포기했던 것인가 ^_ㅜ)

 

코드

num = int(input())
i = 2
while num > 1:
    if num % i == 0:
        num = num // i     #이해 안됨
        print(i)
    else:
        i += 1
728x90