본문 바로가기
🔅코딩테스트 공부🔅/❗백준

[백준] 2501번 약수 구하기 (with python)

by 윤무무 2023. 1. 8.

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

 

2501번: 약수 구하기

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

www.acmicpc.net

 

문제 : 두 개의 자연수 N과 K가 주어졌을 때, N의 약수들 중 K번째로 작은 수를 출력하는 프로그램을 작성하시오.

 

1. 내가 작성한 코드
N,K = input().split()
N = int(N)
K = int(K)
result = []

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

length = len(result)

if length < K:
    print("0")

else :
    print(result[K-1])

 

2. 고칠 점
N,K = input().split()
N = int(N)
K = int(K)
  • N, K = map(int, input().split()) 함수를 이용해서 간략화 시켜야겠다.
length = len(result)

if length < K:
    print("0")
  • 굳이 length라는 변수를 추가하지 않아도 'len(result) < K'로 IF문의 조건식을 만들면 된다.

 

3. 모범 답안
N, K = map(int, input().split())
result = []

for i in range(1,N+1):
    if (N % i) == 0:
        result.append(i)
        i = i + 1 
        
if len(result) < K:
    print("0")

else :
    print(result[K-1])

댓글