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

V tomto programu se naučíte najít GCD dvou čísel v Kotlin. To se provádí pomocí smyček for a while pomocí příkazů if else.

Abychom porozuměli tomuto příkladu, měli byste znát následující programovací témata Java:

  • Prohlášení Java, pokud … else
  • Java pro smyčku
  • Zatímco Java a dělat … zatímco Loop

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í příkazu for loop a if

 public class GCD ( public static void main(String() args) ( int n1 = 81, n2 = 153, gcd = 1; for(int i = 1; i <= n1 && i <= n2; ++i) ( // Checks if i is factor of both integers if(n1 % i==0 && n2 % i==0) gcd = i; ) System.out.printf("G.C.D of %d and %d is %d", n1, n2, gcd); ) )

Výstup

 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 for, 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.

Můžeme také vyřešit tento problém pomocí while smyčky následujícím způsobem:

Příklad 2: Najděte GCD dvou čísel pomocí příkazu while a if else

 public class GCD ( public static void main(String() args) ( int n1 = 81, n2 = 153; while(n1 != n2) ( if(n1> n2) n1 -= n2; else n2 -= n1; ) System.out.println("G.C.D = " + n1); ) )

Výstup

 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

 public class GCD ( public static void main(String() args) ( int n1 = 81, n2 = -153; // Always set to positive n1 = ( n1> 0) ? n1 : -n1; n2 = ( n2> 0) ? n2 : -n2; while(n1 != n2) ( if(n1> n2) n1 -= n2; else n2 -= n1; ) System.out.println("G.C.D = " + n1); ) )

Výstup

 GCD = 9

Zajímavé články...