Program Kotlin na vyhľadanie GCD dvoch čísel

V tomto programe sa naučíte nájsť GCD dvoch čísel v Kotline. To sa deje pomocou cyklu while pomocou príkazu if else.

HCF alebo GCD dvoch celých čísel je najväčšie celé číslo, ktoré dokáže presne rozdeliť obe čísla (bez zvyšku).

Príklad 1: Vyhľadajte GCD dvoch čísel pomocou cyklu while

 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") )

Po spustení programu bude výstup:

 GCD 81 a 153 je 9

Tu sú dve čísla, ktorých GCD treba nájsť, uložené v n1, respektíve n2.

Potom sa vykoná cyklus while, kým i nie je menšie ako n1 aj n2. Týmto spôsobom sa všetky čísla medzi 1 a najmenším z týchto dvoch čísel iterujú, aby sa našli GCD.

Ak sú n1 aj n2 deliteľné i, gcd je nastavené na číslo. Takto to pokračuje, kým nenájdete najväčšie číslo (GCD), ktoré rozdelí n1 aj n2 bezo zvyšku.

Na rozdiel od Javy nemôžete s podmienkami pre tento problém použiť cyklus for. Tu je ekvivalentný kód Java: Program Java na vyhľadanie GCD dvoch čísel.

Existuje lepšia alternatíva na vyhľadanie GCD v Kotline nasledovne:

Príklad 2: Nájdite GCD dvoch čísel (lepšia alternatíva)

 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") )

Po spustení programu bude výstup:

 GCD = 9

Toto je lepší spôsob, ako nájsť GCD. V tejto metóde sa menšie celé číslo odčíta od väčšieho celého čísla a výsledok sa priradí premennej, ktorá obsahuje väčšie celé číslo. Tento proces pokračuje, kým n1 a n2 nie sú rovnaké.

Vyššie uvedené dva programy fungujú zamýšľaným spôsobom, iba ak používateľ zadá kladné celé čísla. Tu je malá modifikácia druhého príkladu, ktorá slúži na nájdenie GCD pre celé aj kladné celé číslo.

Príklad 3: GCD pre kladné aj záporné čísla

 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") )

Po spustení programu bude výstup:

 GCD = 9

Zaujímavé články...