알고리즘

section2.1 K번째 약수

gitofjy 2022. 10. 20. 22:32

N과 K를 입력받고 N의 약수들 중 K번째로 작은 수를 출력

단, N의 약수의 개수가 K개보다 적어서 K번째 약수가 존재하지 않을 경우에는 -1을 출력

 

import sys
sys.stdin = open("input.txt", "rt")
n, k = map(int, input().split())
list = []

for i in range(1, n+1):
    if n%i == 0:
        list.append(i)

if len(list) < k:
    print(-1)
else:
    print(list[k-1])

답은 맞았는데 굳이 list를 만들지 않아도 되는 문제였다

 

 

 

import sys
sys.stdin = open("input.txt", "rt")
n, k = map(int, input().split())
cnt = 0
for i in range(1, n+1):
    if n%i==0:
        cnt+=1
    if cnt==k:
        print(i)
        break
else:
    print(-1)
728x90