В тази програма ще се научите да намирате lcm на две числа, като използвате GCD и като не използвате GCD. Това се прави с помощта на цикъл while в Kotlin.
LCM на две цели числа е най-малкото положително цяло число, което се дели идеално на двете числа (без остатък).
Пример 1: Програма Kotlin за изчисляване на LCM с помощта на изявление while Loop и if
fun main(args: Array) ( val n1 = 72 val n2 = 120 var lcm: Int // maximum number between n1 and n2 is stored in lcm lcm = if (n1> n2) n1 else n2 // Always true while (true) ( if (lcm % n1 == 0 && lcm % n2 == 0) ( println("The LCM of $n1 and $n2 is $lcm.") break ) ++lcm ) )
Когато стартирате програмата, изходът ще бъде:
LCM от 72 и 120 е 360.
В тази програма двете числа, чийто LCM трябва да бъде намерен, се съхраняват съответно в променливи n1 и n2.
След това първоначално зададохме lcm на най-голямото от двете числа. Това е така, защото LCM не може да бъде по-малко от най-големия брой.
Подобно на Java, вътре в безкрайния цикъл while ( while(true)
) проверяваме дали lcm перфектно разделя n1 и n2 или не.
Ако го направи, намерихме LCM. Отпечатваме LCM и излизаме от цикъла while с помощта на break
инструкция.
В противен случай увеличаваме lcm с 1 и проверяваме отново условието за делимост.
Ето еквивалентния Java код: Java програма за намиране на LCM на две числа.
Също така можем да използваме GCD, за да намерим LCM на две числа, като използваме следната формула:
LCM = (n1 * n2) / GCD
Ако не знаете как да изчислите GCD в Java, проверете Kotlin Program, за да намерите GCD от две числа.
Пример 2: Програма Kotlin за изчисляване на LCM с помощта на GCD
fun main(args: Array) ( val n1 = 72 val n2 = 120 var gcd = 1 var i = 1 while (i <= n1 && i <= n2) ( // Checks if i is factor of both integers if (n1 % i == 0 && n2 % i == 0) gcd = i ++i ) val lcm = n1 * n2 / gcd println("The LCM of $n1 and $n2 is $lcm.") )
Резултатът от тази програма е същият като пример 1.
Тук, в цикъл while, изчисляваме GCD на двете числа - n1 и n2. След изчислението използваме горната формула за изчисляване на LCM.