V tomto programu se naučíte najít lcm dvou čísel pomocí GCD a nepoužíváním GCD. To se provádí pomocí while cyklu v Kotlin.
LCM dvou celých čísel je nejmenší kladné celé číslo, které je dokonale dělitelné oběma čísly (bez zbytku).
Příklad 1: Program Kotlin pro výpočet LCM pomocí pří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 ) )
Když spustíte program, výstup bude:
LCM 72 a 120 je 360.
V tomto programu jsou dvě čísla, jejichž LCM se nachází, uložena v proměnných n1 respektive n2.
Poté jsme původně nastavili lcm na největší ze dvou čísel. Důvodem je, že LCM nemůže být menší než největší číslo.
Podobně jako v Javě v nekonečné smyčce while ( while(true)
) kontrolujeme, zda lcm dokonale rozděluje n1 a n2 nebo ne.
Pokud ano, našli jsme LCM. Vytiskneme LCM a vymaníme se z cyklu while pomocí break
příkazu.
Jinak zvýšíme lcm o 1 a znovu otestujeme podmínku dělitelnosti.
Zde je ekvivalentní kód Java: Program Java k vyhledání LCM dvou čísel.
Můžeme také použít GCD k nalezení LCM dvou čísel pomocí následujícího vzorce:
LCM = (n1 * n2) / GCD
Pokud nevíte, jak vypočítat GCD v Javě, zkontrolujte program Kotlin a vyhledejte GCD dvou čísel.
Příklad 2: Program Kotlin pro výpočet LCM pomocí 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 tohoto programu je stejný jako v příkladu 1.
Zde uvnitř smyčky while vypočítáme GCD dvou čísel - n1 a n2. Po výpočtu použijeme výše uvedený vzorec k výpočtu LCM.