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인 경우 즉, 더 이상 나누어지지 않는 경우가 되면 루프를 빠져 나오게 된다.
알고리즘 지식보다는 수학적 지식에 기반을 둔 문제였다.