Program Java na vyhľadanie GCD dvoch čísel

V tomto programe sa naučíte nájsť GCD dvoch čísel v Kotline. To sa deje pomocou slučiek for a while pomocou príkazov if else.

Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku Java:

  • Vyhlásenie Java, ak … else
  • Java pre slučku
  • Java zatiaľ čo a robiť … zatiaľ čo Loop

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 prí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ýkon

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

Tento problém môžeme vyriešiť aj pomocou while cyklu takto:

Príklad 2: Vyhľadajte GCD dvoch čísel pomocou prí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ýkon

 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

 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ýkon

 GCD = 9

Zaujímavé články...