<aside> ✅ 내가 푼 코드
</aside>
# -*- coding: utf-8 -*-
# UTF-8 encoding when using korean
import sys
import math
user_input = sys.stdin.readline;
user_print = sys.stdout.write;
startNum, endNum = map(int, user_input().split());
answer = 99999999;
if startNum == endNum:
for n in range(1, int(math.sqrt(endNum)) + 1):
# 약수일 경우
if endNum % n == 0:
# 몫
quotient = endNum // n;
if answer > quotient:
user_print(str(answer) + ' ');
answer = min(answer, quotient);
else:
answer = 2;
user_print(str(answer));
'''
문제 해설
- a, b가 다를 경우는 약수는 항상 2가된다
- 같을 경우에는 a의 약수 중 가장 작은 애가 약수 된다.
- 약수를 구하는 시간 복잡도는 -> O(sqrt(N))으로 할 수 있다.
'''