V tomto programe sa naučíte nájsť lcm dvoch čísel pomocou GCD a bez použitia GCD. To sa deje pomocou while cyklu v Kotline.
LCM dvoch celých čísel je najmenšie kladné celé číslo, ktoré je dokonale deliteľné obidvomi číslami (bez zvyšku).
Príklad 1: Program Kotlin na výpočet LCM pomocou príkazu while Loop a 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 ) )
Po spustení programu bude výstup:
LCM 72 a 120 je 360.
V tomto programe sú dve čísla, ktorých LCM je potrebné nájsť, uložené v premenných n1 a n2.
Potom sme pôvodne nastavili lcm na najväčšie z týchto dvoch čísel. Je to preto, že LCM nemôže byť menšie ako najväčšie číslo.
Podobne ako v Jave, vo vnútri nekonečnej cyklu while ( while(true)
) kontrolujeme, či lcm perfektne rozdeľuje n1 aj n2 alebo nie.
Ak áno, našli sme LCM. Vytlačíme LCM a vyradíme sa z cyklu while pomocou break
príkazu.
Inak zvýšime lcm o 1 a znovu otestujeme podmienku deliteľnosti.
Tu je ekvivalentný kód Java: Program Java na vyhľadanie LCM dvoch čísel.
Pomocou GCD môžeme tiež nájsť LCM dvoch čísel pomocou nasledujúceho vzorca:
LCM = (n1 * n2) / GCD
Ak neviete, ako vypočítať GCD v Jave, skontrolujte program Kotlin a nájdite GCD dvoch čísel.
Príklad 2: Program Kotlin na výpočet LCM pomocou 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.") )
Výstup tohto programu je rovnaký ako v príklade 1.
Tu vo vnútri while cyklu vypočítame GCD z dvoch čísel - n1 a n2. Po výpočte použijeme vyššie uvedený vzorec na výpočet LCM.