백준 2501번. 약수 구하기에 대한 풀이를 약수 구하기 알고리즘의 스니펫 느낌으로 작성.
import sys
from math import sqrt
input = lambda: sys.stdin.readline().rstrip()
miis = lambda: map(int, input().split())
######################################
def get_divisors(n):
ret = []
for i in range(1, int(sqrt(n))+1):
if n%i == 0:
ret.append(i)
if i == n//i:
continue
ret.append(n//i)
return sorted(ret)
######################################
N, K = miis() # N의 약수 중 K번째로 작은 수 구하기
divisors = get_divisors(N)
print(divisors[K-1] if len(divisors) >= K else 0)