알고리즘/약수, 배수와 소수 단계
[백준][2501] 약수 구하기
금님은님아부지
2024. 4. 26. 17:29
728x90
https://www.acmicpc.net/problem/2501
2501번: 약수 구하기
첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다.
www.acmicpc.net
문제 풀이
1. 1부터 N 까지 루프를 돌려 (N % index == 0) 인 index 를 result list 에 저장한다.
2. result list 의 크기가 K 보다 작으면 조건에 따라 0을 출력 한다.
3. result list 의 크기가 K 보다 크거나 같으면 (K - 1)번째의 값을 출력한다.
코드
import java.io.BufferedReader
import java.io.InputStreamReader
fun main(args: Array<String>) {
val br = BufferedReader(InputStreamReader(System.`in`))
val (N, K) = br.readLine().split(" ").map { it.toInt() }
val result = mutableListOf<Int>()
for (i in 1..N) {
if (N % i == 0) {
result.add(i)
}
}
//println(result.toString())
if (result.size >= K) {
println(result[K - 1])
} else {
println(0)
}
}
728x90