U ovom programu naučit ćete pronaći GCD dva broja u Kotlinu. To se postiže upotrebom while petlje uz pomoć if else izraza.
HCF ili GCD dviju cijelih brojeva najveći je cijeli broj koji može točno podijeliti oba broja (bez ostatka).
Primjer 1: Pronađite GCD dva broja pomoću while petlje
fun main(args: Array) ( val n1 = 81 val n2 = 153 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 ) println("G.C.D of $n1 and $n2 is $gcd") )
Kada pokrenete program, izlaz će biti:
GCD od 81 i 153 je 9
Ovdje su dva broja čiji se GCD nalazi pohranjeni u n1, odnosno n2.
Zatim se izvršava while petlja dok i ne bude manji i od n1 i n2. Na taj se način svi brojevi između 1 i najmanjeg od dva broja ponavljaju kako bi se pronašao GCD.
Ako su i n1 i n2 djeljivi s i, gcd se postavlja na broj. To traje sve dok ne pronađe najveći broj (GCD) koji dijeli i n1 i n2 bez ostatka.
Za razliku od Jave, ne možete koristiti for petlju s uvjetima za ovaj problem. Evo ekvivalentnog Java koda: Java program za pronalaženje GCD-a od dva broja.
Postoji bolja alternativa za pronalazak GCD-a u Kotlinu kako slijedi:
Primjer 2: Pronađite GCD dva broja (bolja alternativa)
fun main(args: Array) ( var n1 = 81 var n2 = 153 while (n1 != n2) ( if (n1> n2) n1 -= n2 else n2 -= n1 ) println("G.C.D = $n1") )
Kada pokrenete program, izlaz će biti:
GCD = 9
Ovo je bolji način za pronalaženje GCD-a. U ovoj se metodi manji cijeli broj oduzima od većeg, a rezultat se dodjeljuje varijabli koja sadrži veći cijeli broj. Taj se postupak nastavlja dok n1 i n2 ne budu jednaki.
Gornja dva programa rade kako je predviđeno samo ako korisnik unese pozitivne cijele brojeve. Evo male preinake drugog primjera kako bismo pronašli GCD i za pozitivne i za negativne cijele brojeve.
Primjer 3: GCD i za pozitivne i za negativne brojeve
fun main(args: Array) ( var n1 = 81 var n2 = -153 // Always set to positive n1 = if (n1> 0) n1 else -n1 n2 = if (n2> 0) n2 else -n2 while (n1 != n2) ( if (n1> n2) n1 -= n2 else n2 -= n1 ) println("G.C.D = $n1") )
Kada pokrenete program, izlaz će biti:
GCD = 9