Program C na vyhľadanie LCM dvoch čísel

V tomto príklade sa naučíte vypočítať LCM (najnižší spoločný násobok) dvoch čísel zadaných používateľom.

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

  • Operátori programovania C.
  • C ak … iné vyhlásenie
  • C kým a robiť … zatiaľ čo Loop

LCM dvoch celých čísel n1 a n2 je najmenšie kladné celé číslo, ktoré je dokonale deliteľné ako n1, tak aj n2 (bez zvyšku). Napríklad LCM 72 a 120 je 360.

LCM pomocou while a if

 #include int main() ( int n1, n2, max; printf("Enter two positive integers: "); scanf("%d %d", &n1, &n2); // maximum number between n1 and n2 is stored in min max = (n1> n2) ? n1 : n2; while (1) ( if (max % n1 == 0 && max % n2 == 0) ( printf("The LCM of %d and %d is %d.", n1, n2, max); break; ) ++max; ) return 0; ) 

Výkon

 Zadajte dve kladné celé čísla: 72 120 LCM 72 a 120 je 360. 

V tomto programe sú celé čísla zadané používateľom uložené v premenných n1 a n2.

Najväčší počet medzi n1 a n2 je uložený v max. LCM dvoch čísel nemôže byť menší ako max.

Skúšobný výraz whileslučky je vždy pravdivý.

V každej iterácii sa kontroluje, či je max úplne deliteľné n1 a n2.

 if (min% n1 == 0 && max% n2 == 0) (…) 

Ak táto testovacia podmienka nie je pravdivá, max sa zvýši o 1a iterácia pokračuje, kým nebude testovací výraz ifpríkazu pravdivý.

LCM dvoch čísel možno nájsť aj pomocou vzorca:

 LCM = (číslo1 * číslo2) / GCD 

Naučte sa, ako nájsť GCD dvoch čísel v programovaní C.

Výpočet LCM pomocou GCD

 #include int main() ( int n1, n2, i, gcd, lcm; printf("Enter two positive integers: "); scanf("%d %d", &n1, &n2); for (i = 1; i <= n1 && i <= n2; ++i) ( // check if i is a factor of both integers if (n1 % i == 0 && n2 % i == 0) gcd = i; ) lcm = (n1 * n2) / gcd; printf("The LCM of two numbers %d and %d is %d.", n1, n2, lcm); return 0; ) 

Výkon

 Zadajte dve kladné celé čísla: 72 120 LCM dvoch čísel 72 a 120 je 360. 

Zaujímavé články...