Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- ESP32_S2
- GCD
- 약수 구하기
- 카이캐드
- ESP32_S2_WROVER
- Arduoin
- 개발 보드
- 카이캐드 다운로드
- 우송대
- 아두이노
- 카이캐드 설치
- 업캐스팅
- androidstudio
- ATmega328p
- 아두이노 모터 드라이버
- 안드로이드스튜디오
- 라즈베리파이 피코
- kotlin
- 유클리드 호제법
- 우송대 라즈베리파이 피코
- L293D
- 7세그먼트
- 우송대학교
- 추상화함수
- PICO4
- 자료구조
- 재정의함수
- 코틀린
- KiCad
- string함수
Archives
- Today
- Total
개발자의 생활
[공배수(CM), 최소공배수(LCM)] 구하기(Kotlin) 본문
공배수: 2개 이상의 자연수 중 공통인 배수
예) 3의 배수: 3, 6, 9, 12, 15, 18, 21, 24, 27...
4의 배수: 4, 8, 12, 16, 20, 24, 28...
3과 4의 공배수: 12, 24, 36...
최소 공배수: 공배수중 가장 작은 수
예) 3과 4 의 최소공배수: 12
공배수 는 최소 공배수의 배수이기 때문에 최소 공배수 하나만 구하면 됩니다.
1. 최소 공배수 구하기
최소 공배수를 구하는 방법은 간단합니다. 두 수의 곱 / 최대 공약수 를 하면 구할 수 있습니다.
최대 공약수 는 이전에 구하는 방법을 포스팅 하였습니다.
https://han-studio.tistory.com/41
[공약수, 최대공약수] 구하기(Kotlin)
공약수: 2개 이상의 자연수가 가지는 공통의 약수예)10의 약수: 1, 2, 5, 1015의 약수: 1, 3, 5, 1510과 15의 공약수: 3, 5 최대공약수: 공약수 중 가장 큰 값예) 10과 15의 최대공약수: 5 공약수를 구하기
han-studio.tistory.com
여기서는 유클리드 알고리즘을 사용해서 최대 공약수를 구하겠습니다.
fun main() {
val num1 = 12
val num2 = 15
println(num1 * num2 / gcd(num1, num2))
}
fun gcd(num1: Int, num2: Int): Int{
if(num1 % num2 == 0) return num2
return gcd(num2, num1 % num2)
}
시간 복잡도: O(log(min(a,b)))
2. 공배수 구하기
fun main() {
val num1 = 3
val num2 = 4
val gcd = num1 * num2 / gcd(num1, num2)
val lcm = mutableListOf<Int>()
for (i in gcd..gcd*10 step gcd){
lcm.add(i)
}
println(lcm.joinToString(", "))
}
fun gcd(num1: Int, num2: Int): Int{
if(num1 % num2 == 0) return num2
return gcd(num2, num1 % num2)
}
시간 복잡도: O(log(min(a,b)) + n)
'알고리즘' 카테고리의 다른 글
[소인수] 구하기(Kotlin) (1) | 2025.01.16 |
---|---|
[소수] 구하기, 판별(Kotlin) (0) | 2025.01.14 |
[약수] 구하기(Kotlin) (0) | 2025.01.11 |