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

김동준·2023년 9월 13일
0
post-thumbnail

11653번 문제 링크
https://www.acmicpc.net/problem/11653

📌 풀이

python

n = int(input())
divNum = 2
while n!=1:
 if n%divNum == 0:
   print(divNum)
   n = n/divNum
 else:
   divNum+=1



Explanation

while문을 통해 입력된 정수 n이 1이 될 때까지 루프를 돌린다. 만약 divNum으로 n이 나뉜다면 divNum을 출력하고 그것의 몫을 n에 대입하여 다시 루프를 돌린다. 만약 2로 더 이상 나누어지지 않는다면 divNum을 하나 증가해 다시 루프를 돌린다. 이런 로직이 반복되다 n이 1인 경우 즉, 더 이상 나누어지지 않는 경우가 되면 루프를 빠져 나오게 된다.

알고리즘 지식보다는 수학적 지식에 기반을 둔 문제였다.

profile
동구팔

0개의 댓글

관련 채용 정보