Uknow's Lab.
article thumbnail

https://uknowblog.tistory.com/117

 

[백준 1253번] [Kotlin] 좋다

https://www.acmicpc.net/problem/1253 1253번: 좋다 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) www.acmicpc.net 난이도 : 골드 4

uknowblog.tistory.com

 

난이도 : 브론즈 1
태그 : 수학, 정수론, 유클리드 호제법

 

 

설명

가장 오래된 알고리즘인 유클리드 호제법을 사용해 풀 수 있습니다.

해당 알고리즘에 관해서는 백준 2069번 - 최대공약수와 최소공배수 포스팅을 참고해주세요.

https://uknowblog.tistory.com/15

 

[백준 2069] [Kotlin] [유클리드 호제법] 최대공약수와 최소공배수

https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 난

uknowblog.tistory.com

 

 

 

소스코드

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)
}

 

 

후기

이전에 포스팅했던 유클리드 호제법 덕에 그리 어렵지 않게 풀 수 있었던 것 같네요.

profile

Uknow's Lab.

@유노 Uknow

인생은 Byte와 Double 사이 Char다. 아무말이나 해봤습니다.