U ovom programu naučit ćete pronaći lcm dvobroja pomoću GCD-a i neiskorištenjem GCD-a. To se radi pomoću petlje while u Kotlinu.
LCM dviju cijelih brojeva najmanji je pozitivni cijeli broj koji se savršeno dijeli s oba broja (bez ostatka).
Primjer 1: Kotlinov program za izračunavanje LCM-a pomoću izjave while Loop i 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 ) )
Kada pokrenete program, izlaz će biti:
LCM od 72 i 120 je 360.
U ovom su programu dva broja čiji se LCM nalazi pohranjeni u varijable n1 odnosno n2.
Zatim smo u početku postavili lcm na najveći od dva broja. To je zato što LCM ne može biti manji od najvećeg broja.
Slično Java, unutar beskonačne while petlje ( while(true)
) provjeravamo dijeli li lcm savršeno i n1 i n2 ili ne.
Ako se dogodi, pronašli smo LCM. Ispisujemo LCM i izbijamo se iz while petlje pomoću break
izraza.
Inače, povećavamo lcm za 1 i ponovno testiramo uvjet djeljivosti.
Evo ekvivalentnog Java koda: Java program za pronalaženje LCM-a od dva broja.
Također možemo koristiti GCD da pronađemo LCM dva broja koristeći sljedeću formulu:
LCM = (n1 * n2) / GCD
Ako ne znate kako izračunati GCD na Javi, provjerite Kotlin Program da biste pronašli GCD od dva broja.
Primjer 2: Kotlinov program za izračunavanje LCM-a pomoću GCD-a
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.") )
Rezultat ovog programa jednak je primjeru 1.
Ovdje, unutar while petlje, izračunavamo GCD dva broja - n1 i n2. Nakon izračuna, koristimo gornju formulu za izračunavanje LCM-a.