[snippet] divisor.py

Yongjun Park·2022년 8월 9일
0

CP(Competitive Programming)

목록 보기
14/19

백준 2501번. 약수 구하기에 대한 풀이를 약수 구하기 알고리즘의 스니펫 느낌으로 작성.

  • 약수 = divisor
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)
profile
추상화되었던 기술을 밑단까지 이해했을 때의 쾌감을 잊지 못합니다

0개의 댓글