V tomto programu se naučíte najít lcm dvou čísel pomocí GCD a nepoužíváním GCD. To se provádí pomocí smyček for and while v Javě.
Abychom porozuměli tomuto příkladu, měli byste znát následující programovací témata Java:
- Prohlášení Java, pokud … else
- Zatímco Java a dělat … zatímco Loop
LCM dvou celých čísel je nejmenší kladné celé číslo, které je dokonale dělitelné oběma čísly (bez zbytku).
Příklad 1: LCM pomocí pří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ýstup
LCM 72 a 120 je 360.
V tomto programu jsou dvě čísla, jejichž LCM se nachází, uložena v proměnných n1 respektive n2.
Poté jsme původně nastavili lcm na největší ze dvou čísel. Důvodem je, že LCM nemůže být menší než největší číslo.
Uvnitř nekonečné while smyčky ( while(true)
) zkontrolujeme, zda lcm dokonale rozděluje n1 a n2 nebo ne.
Pokud ano, našli jsme LCM. Vytiskneme LCM a vymaníme se z cyklu while pomocí break
příkazu.
Jinak zvýšíme lcm o 1 a znovu otestujeme podmínku dělitelnosti.
Můžeme také použít GCD k nalezení LCM dvou čísel pomocí následujícího vzorce:
LCM = (n1 * n2) / GCD
Pokud nevíte, jak vypočítat GCD v Javě, zkontrolujte program Java a vyhledejte GCD dvou čísel.
Příklad 2: Výpočet LCM pomocí 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 tohoto programu je stejný jako v příkladu 1.
Zde uvnitř smyčky for vypočítáme GCD dvou čísel - n1 a n2. Po výpočtu použijeme výše uvedený vzorec k výpočtu LCM.