V tomto programe sa naučíte nájsť lcm dvoch čísel pomocou GCD a bez použitia GCD. To sa deje pomocou slučiek for and while v Jave.
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 zatiaľ čo a robiť … zatiaľ čo Loop
LCM dvoch celých čísel je najmenšie kladné celé číslo, ktoré je dokonale deliteľné obidvomi číslami (bez zvyšku).
Príklad 1: LCM pomocou príkazu while Loop a if
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; ) ) )
Výkon
LCM 72 a 120 je 360.
V tomto programe sú dve čísla, ktorých LCM je potrebné nájsť, uložené v premenných n1 a n2.
Potom sme pôvodne nastavili lcm na najväčšie z týchto dvoch čísel. Je to preto, že LCM nemôže byť menšie ako najväčšie číslo.
Vo vnútri nekonečnej while ( while(true)
) kontrolujeme, či lcm perfektne rozdeľuje n1 aj n2 alebo nie.
Ak áno, našli sme LCM. Vytlačíme LCM a vyradíme sa z cyklu while pomocou break
príkazu.
Inak zvýšime lcm o 1 a znovu otestujeme podmienku deliteľnosti.
Pomocou GCD môžeme tiež nájsť LCM dvoch čísel pomocou nasledujúceho vzorca:
LCM = (n1 * n2) / GCD
Ak neviete, ako vypočítať GCD v jazyku Java, vyhľadajte program Java a nájdite GCD dvoch čísel.
Príklad 2: Vypočítajte LCM pomocou GCD
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); ) )
Výstup tohto programu je rovnaký ako v príklade 1.
Tu vo vnútri slučky for vypočítame GCD z dvoch čísel - n1 a n2. Po výpočte použijeme vyššie uvedený vzorec na výpočet LCM.