https://uknowblog.tistory.com/117
난이도 : 브론즈 1
태그 : 수학, 정수론, 유클리드 호제법
설명
가장 오래된 알고리즘인 유클리드 호제법을 사용해 풀 수 있습니다.
해당 알고리즘에 관해서는 백준 2069번 - 최대공약수와 최소공배수 포스팅을 참고해주세요.
https://uknowblog.tistory.com/15
소스코드
import java.util.StringTokenizer
fun main() = with(System.`in`.bufferedReader()) {
repeat(readLine().toInt()) {
val st = StringTokenizer(readLine())
val (a, b) = arrayOf(st.nextToken().toInt(), st.nextToken().toInt())
LCM(a, b, GCD(a, b))
}
}
fun GCD(n1: Int, n2: Int): Int {
return if (n2 == 0) {
n1
} else {
GCD(n2, n1 % n2)
}
}
fun LCM(n1: Int, n2: Int, gcd: Int) {
println(n1 * n2 / gcd)
}
후기
이전에 포스팅했던 유클리드 호제법 덕에 그리 어렵지 않게 풀 수 있었던 것 같네요.
'코딩테스트 > Kotlin' 카테고리의 다른 글
[백준 4963번] [Kotlin] 섬의 개수 (0) | 2023.02.04 |
---|---|
[백준 5554번] [Kotlin] 심부름 가는 길 (0) | 2023.02.04 |
[백준 3273번] [Kotlin] 두 수의 합 (0) | 2023.02.04 |
[백준 5585번] [Kotlin] 거스름돈 (0) | 2023.02.04 |
[백준 2217번] [Kotlin] 로프 (1) | 2023.02.04 |