Kotlin 최대공약수/최소공배수 - 유클리드 호제법
Notepad96
·2020. 11. 29. 04:47
300x250
1. 최대공약수 / 최소공배수
최대공약수(GCD, Greatest Common Divisor) 란, 두 개 혹은 그 이상의 수 간의 공통의 약수들 중 최대, 가장 큰 값을 의미한다.
이러한 최대공약수는 유클리드 호제법을 사용하면 간단하게 구할 수 있으며
구한 최대공약수를 이용하여 최소공배수 또한 구할 수 있다.
2. 코 드
환경 : Kotlin Version = 1.4.20, JVM
fun gcd(a: Int, b:Int): Int = if(b != 0) gcd(b, a % b) else a
fun main(args : Array<String>) {
var x = 4
var y = 10
println("최대 공약수 : ${gcd(x, y)}")
println("최소 공배수 : ${x * y / gcd(x, y)}")
x = 28
y = 16
println("최대 공약수 : ${gcd(x, y)}")
println("최소 공배수 : ${x * y / gcd(x, y)}")
}
- 구현한 gcd 함수를 사용하면 최대 공약수를 구할 수 있다.
- 최소 공배수는 두 수의 곱을 최대 공약수로 나누는 것으로 구할 수 있다.
3. 참 조
300x250
'Kotlin > Algorithm' 카테고리의 다른 글
Kotlin pi, 절댓값, 대소 비교 - PI, abs, max, min (0) | 2020.12.01 |
---|---|
Kotlin StringBuilder - 문자열 효율적으로 다루기 (0) | 2020.11.30 |
Kotlin 반올림, 올림, 내림 - round, ceil, floor (0) | 2020.11.30 |
Kotlin 제곱, 제곱근 구하기 - sqrt, pow, hypot (0) | 2020.11.29 |
Kotlin UpperCase & LowerCase - 대소문자 검사 및 변환 (0) | 2020.11.28 |