반응형
안녕하세요.
이번 포스팅은 백준 온라인 저지의 2501번 문제 풀이입니다.
문제 이름은 "약수 구하기" 입니다.
문제 링크는 바로 밑의 링크를 확인해주세요.
https://www.acmicpc.net/problem/2501
1
2
3
4
5
6
7
8
9
|
N, K = map(int, input().split())
result = []
for i in range(1, N+1):
if (N % i == 0):
result.append(i)
if len(result) < K:
print(0)
else:
print(result[K-1])
|
cs |
1. 첫째 줄에 테스트 수를 입력받습니다.
map() 함수를 사용해서 공백 구분으로 자연수 N과 K를 입력받습니다.
2. 약수들을 저장할 리스트를 선언합니다.
3. for문을 통해서 숫자 1부터 N까지 순차적으로 탐색합니다.
4~5. i 번째 숫자가 N을 나누었을 때 0이 되면 N의 약수이므로
if문을 통해서 약수를 결과 리스트에 추가합니다.
6~7. 해당 문제의 출력 부분의 예외 처리로
약수의 개수보다 K가 클 경우 0을 출력합니다.
8~9. 약수를 리스트로 선언했기 때문에
리스트의 인덱스는 0부터 시작하므로 +1을 해줍니다.
댓글