Kotlinov program za pronalaženje GCD-a od dva broja

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

Zanimljivi članci...