C Programa rasti dviejų skaičių LCM

Šiame pavyzdyje išmoksite apskaičiuoti dviejų naudotojo įvestų skaičių LCM (mažiausias bendras kartotinis).

Norėdami suprasti šį pavyzdį, turėtumėte žinoti šias C programavimo temas:

  • C programavimo operatoriai
  • C jei … dar pareiškimas
  • C kol ir daryk … kol kilpa

Dviejų sveikų skaičių n1 ir n2 LCM yra mažiausias teigiamas sveikasis skaičius, kuris puikiai dalijasi tiek iš n1, tiek ir nuo n2 (be liekanos). Pavyzdžiui, LCM 72 ir 120 yra 360.

LCM naudojant, o ir jei

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

Rezultatas

 Įveskite du teigiamus skaičius: 72 120 LCM 72 ir 120 yra 360. 

Šioje programoje vartotojo įvesti sveiki skaičiai saugomi atitinkamai kintamuosiuose n1 ir n2.

Didžiausias skaičius tarp n1 ir n2 saugomas maks. Dviejų skaičių LCM negali būti mažesnis nei maks.

Testinė whileciklo išraiška visada teisinga.

Kiekvienoje iteracijoje tikrinama, ar max yra visiškai padalijamas iš n1 ir n2.

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

Jei ši bandymo sąlyga nėra teisinga, maksimumas padidinamas 1ir iteracija tęsiama tol, kol ifteisinga teiginio bandomoji išraiška .

Dviejų skaičių LCM taip pat galima rasti pagal formulę:

 LCM = (num1 * num2) / GCD 

Sužinokite, kaip rasti dviejų skaičių GCD programuojant C.

LCM skaičiavimas naudojant 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; ) 

Rezultatas

 Įveskite du teigiamus skaičius: 72 120 Dviejų skaičių 72 ir 120 LCM yra 360. 

Įdomios straipsniai...