Post

11. Python(소인수분해)

11. Python(소인수분해)

[toc]

벌집

문제

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

제출

1
2
3
4
5
6
7
8
9
n = int(input())
s_num = 2

while s_num <= n:
    if n % s_num == 0:
        print(s_num)
        n = n / s_num
    else:
        s_num += 1
1
2
# 입력
72
1
2
3
4
5
6
# 출력
2
2
2
3
3

인사이트

  • 가장 작은 소수인 2s_num의 초기값으로 설정
  • 만약 n을 s_num으로 나누었을 때 나머지가 0이라면, s_num은 n의 소인수가 되므로 s_num을 출력한 후, n의 값을 s_num으로 나눈 몫으로 변경
  • 만약 나머지가 0이 아닐 경우, s_num의 값을 1 증가시켜 다시 과정을 진행