본문 바로가기
Backjoon

Backjoon problem 2501 약수 구하기 - python

by ddahu 2023. 5. 4.

https://www.acmicpc.net/problem/2501

 

2501번: 약수 구하기

첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다.

www.acmicpc.net

 

  • 입력과 출력

  • 소스코드
N,M = map(int,input().split())
lst = [i for i in range(1,N+1) if N % i == 0]
try:
    print(lst[M-1])
except:
    print(0)
  • 해설

약수를 구할려면 입력된 값을 차례대로 나누어 떨어지는 수를 구하면 된다 .

 

리스트 컴프리헨션 방법을 사용하여 코드를 간략화 했고

약수는 1부터시작 하므로 반복문은 1 ~ N+1 까지 반복하여 lst에 집어넣어주었다

 

try ~ except 문을 사용하여 만약에 두번째 입력값이 존재하지않으면 에러가 발생하여 에러대신 0을 출력하게 하였다.

이 방법은 순서대로 1부터 반복을 하므로 자동으로 오름차순으로 정렬이되기때문에 만들어진 lst 에 M-1 이 K번째로 작은 수가 될것이다.