Program Kotlin k vyhledání GCD dvou čísel

V tomto programu se naučíte najít GCD dvou čísel v Kotlin. To se provádí pomocí while smyčky pomocí příkazu if else.

HCF nebo GCD dvou celých čísel je největší celé číslo, které dokáže přesně rozdělit obě čísla (bez zbytku).

Příklad 1: Najděte GCD dvou čísel pomocí smyčky 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") )

Když spustíte program, výstup bude:

 GCD 81 a 153 je 9

Zde jsou dvě čísla, jejichž GCD lze nalézt, uložena v n1 a n2.

Poté se provede smyčka while, dokud není i menší než n1 i n2. Tímto způsobem jsou všechna čísla mezi 1 a nejmenším ze dvou čísel iterována, aby se našla GCD.

Pokud jsou n1 i n2 dělitelné i, gcd je nastaveno na číslo. Takto to pokračuje, dokud nenajdete největší číslo (GCD), které dělí n1 a n2 beze zbytku.

Na rozdíl od Javy nemůžete použít smyčku for s podmínkami pro tento problém. Zde je ekvivalentní kód Java: Program Java k vyhledání GCD dvou čísel.

Lepší alternativa pro nalezení GCD v Kotlin je následující:

Příklad 2: Najděte GCD dvou čísel (lepší 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") )

Když spustíte program, výstup bude:

 GCD = 9

Toto je lepší způsob, jak najít GCD. V této metodě se menší celé číslo odečte od většího celého čísla a výsledek se přiřadí proměnné obsahující větší celé číslo. Tento proces pokračuje, dokud n1 a n2 nejsou stejné.

Výše uvedené dva programy fungují, jak bylo zamýšleno, pouze pokud uživatel zadá kladná celá čísla. Zde je malá úprava druhého příkladu, jak najít GCD pro pozitivní i negativní celá čísla.

Příklad 3: GCD pro kladná i 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") )

Když spustíte program, výstup bude:

 GCD = 9

Zajímavé články...