Java 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 pomoću petlje for i while uz pomoć if else izraza.

Da biste razumjeli ovaj primjer, trebali biste imati znanje o sljedećim temama programiranja Java:

  • Java if … else Izjava
  • Java za petlju
  • Java while and do … while Loop

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 naredbe for i 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); ) )

Izlaz

 GCD od 81 i 153 je 9

Ovdje su dva broja čiji se GCD nalazi pohranjeni u n1, odnosno n2.

Zatim se for petlja izvršava dok i nije manji 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.

Ovaj problem također možemo riješiti pomoću while petlje na sljedeći način:

Primjer 2: Pronađite GCD dva broja pomoću while petlje i if else izraza

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

Izlaz

 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

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

Izlaz

 GCD = 9

Zanimljivi članci...