본문 바로가기
알고리즘

[Swift] 백준 2501번 약수 구하기

by 고고 2022. 3. 18.

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

 

2501번: 약수 구하기

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

www.acmicpc.net

 

 

1부터 N까지 약수를 구해가며 K번째 약수까지 구했을 시 break합니다.

K번째 약수를 구하지 못했다면 0을 프린트합니다.

import Foundation

let arr = readLine()!.split(separator: " ").map { Int(String($0))! }
let N = arr[0]
let M = arr[1]

var numbers = [Int]()

for i in 1...N {
    if N % i == 0 {
        numbers.append(i)
    }
    if numbers.count == M {
        break
    }
}


if numbers.count == M {
    print(numbers.last!)
} else {
    print("0")
}

댓글