본문 바로가기
백준

[백준] 11653번 : 소인수분해 - 파이썬(Python) - 우당탕탕 개발자되기 프로젝트

by 우당탕탕 개발자 2023. 7. 27.
728x90
반응형

 

 

11653번: 소인수분해

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

www.acmicpc.net

 

1. 문제 설명

2. 풀이과정

  1. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
  2. 소인수분해할 정수를 입력받는다. N = int(sys.stdin.readline())
  3. 소인수분해는 첫 번째 소수인 2부터 나누어 떨어지는지 확인해야 하므로 변수를 생성하고 2를 저장한다. i = 2
  4. 정수가 1이 되어 더 이상 나누어 떨어지지 않을 때까지 반복하며 while (N > 1)
  5. 만약 정수가 나누어 떨어지면 if (N % i == 0)
  6. 해당 소수를 출력한다. print(i)
  7. 그리고 정수를 소수로 나눈 몫으로 새로 저장한다. N //= i
  8. 반면에 정수가 나누어 떨어지지 않으면 else
  9. 나누는 수인 소수를 1 증가시킨다. i += 1
반응형

3. 소스코드

import sys

N = int(sys.stdin.readline())

i = 2
while (N > 1):
    if (N % i == 0):
        print(i)
        N //= i
    else:
        i += 1
728x90
반응형