본문 바로가기
백준

[백준] 2501번 : 약수 구하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 10. 21.
728x90
반응형

 

 

2501번: 약수 구하기

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

www.acmicpc.net

 

1. 문제 설명

2. 풀이과정

해당 문제는 약수를 구하고 원하는 순서에 위치한 약수를 출력하는 문제이다.

리스트에 약수를 저장하고 원하는 순서의 약수를 출력한다.

 

  1. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
  2. N과 K를 입력받는다. N, K = map(int, sys.stdin.readline().split())
  3. 약수를 저장할 리스트를 생성한다. li = list()
  4. 1부터 N까지 반복하며 for i in range(1, N + 1)
  5. 만약 해당 수가 N의 약수이면 if (N % i == 0)
  6. 약수를 리스트에 추가한다. li.append(i)
  7. 만약 약수의 개수가 출력할 순서보다 같거나 많으면 if (len(li) >= K)
  8. 해당 순서의 약수를 출력한다. print(li[K - 1])
  9. 반면에 약수의 개수가 출력할 순서보다 적으면 else
  10. 0을 출력한다. print(0)
반응형

3. 소스코드

import sys

N, K = map(int, sys.stdin.readline().split())

li = list()
for i in range(1, N + 1):
    if (N % i == 0):
        li.append(i)
        
if (len(li) >= K):
    print(li[K - 1])
else:
    print(0)
728x90
반응형