1 부터 N까지 나머지가 0 이되는 값을 list에 모아서 K번째 수를 찾는다
어차피 처음부터 차례대로 리스트에 쌓이기 때문에 굳이 sort할 필요는 없다
import sys
#sys.stdin=open("./acmicpc/1037.txt",'rt')
n,k=map(int,input().split())
result=list()
#range(n+1) 하면 0부터 나오니깐 1로 세팅
for i in range(1,n+1) :
if(n%i == 0) :
result.append(i)
if len(result)>0 and len(result) > (k-1) :
print(result[k-1])
else :
print(0)
좀 더 나은 속도를 위해 Count를 세서 break문으로 빠져나간다.
근데 백준에서 보니깐 차이가 없다;;
import sys
#sys.stdin=open('./acmicpc/1037.txt','rt')
n, k =map(int,input().split())
count = 0
result = 0
for i in range(1,n+1) :
if n%i == 0 :
count+=1
# 만약 i와 k가 같다면 break로 빠져나온다
# 만약 k가 count보다 크다면 break로 빠져나오지 않는다.
if count == k :
result=i
break
print(result)
'알고리즘 > 수학' 카테고리의 다른 글
[Kotlin ]2501번 약수 (0) | 2020.12.23 |
---|