U ovom programu naučit ćete pronaći lcm dvobroja pomoću GCD-a i neiskorištenjem GCD-a. To se radi pomoću petlji for and while u Javi.
Da biste razumjeli ovaj primjer, trebali biste imati znanje o sljedećim temama programiranja Java:
- Java if … else Izjava
- Java while and do … while Loop
LCM dviju cijelih brojeva najmanji je pozitivni cijeli broj koji se savršeno dijeli s oba broja (bez ostatka).
Primjer 1: LCM pomoću while Loop i if izjave
public class Main ( public static void main(String() args) ( int n1 = 72, n2 = 120, lcm; // maximum number between n1 and n2 is stored in lcm lcm = (n1> n2) ? n1 : n2; // Always true while(true) ( if( lcm % n1 == 0 && lcm % n2 == 0 ) ( System.out.printf("The LCM of %d and %d is %d.", n1, n2, lcm); break; ) ++lcm; ) ) )
Izlaz
LCM od 72 i 120 je 360.
U ovom su programu dva broja čiji se LCM nalazi pohranjeni u varijable n1 odnosno n2.
Zatim smo u početku postavili lcm na najveći od dva broja. To je zato što LCM ne može biti manji od najvećeg broja.
Unutar beskonačne while petlje ( while(true)
) provjeravamo dijeli li lcm savršeno n1 i n2 ili ne.
Ako se dogodi, pronašli smo LCM. Ispisujemo LCM i izbijamo se iz while petlje pomoću break
izraza.
Inače, povećavamo lcm za 1 i ponovno testiramo uvjet djeljivosti.
Također možemo koristiti GCD da pronađemo LCM dva broja koristeći sljedeću formulu:
LCM = (n1 * n2) / GCD
Ako ne znate kako izračunati GCD na Javi, provjerite Java program kako biste pronašli GCD od dva broja.
Primjer 2: Izračunajte LCM pomoću GCD-a
public class Main ( public static void main(String() args) ( int n1 = 72, n2 = 120, 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; ) int lcm = (n1 * n2) / gcd; System.out.printf("The LCM of %d and %d is %d.", n1, n2, lcm); ) )
Rezultat ovog programa jednak je primjeru 1.
Ovdje, unutar petlje for, izračunavamo GCD dva broja - n1 i n2. Nakon izračuna, koristimo gornju formulu za izračunavanje LCM-a.