C Programm kahe numbri LCM leidmiseks

Selles näites õpitakse arvutama kasutaja sisestatud kahe numbri LCM (madalaim ühine kordne).

Selle näite mõistmiseks peaksid teil olema teadmised järgmistest C-programmeerimise teemadest:

  • C programmeerimisoperaatorid
  • C kui … muidu avaldus
  • C ajal ja tehke … Loopi ajal

Kahe täisarvu n1 ja n2 LCM on väikseim positiivne täisarv, mis on täiesti jagatav nii n1 kui ka n2 arvuga (ilma jäägita). Näiteks LCM 72 ja 120 on 360.

LCM kasutades aega ja kui

 #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äljund

 Sisestage kaks positiivset täisarvu: 72 120 LCM 72 ja 120 on 360. 

Selles programmis salvestatakse kasutaja sisestatud täisarvud vastavalt muutujatesse n1 ja n2.

Suurim arv n1 ja n2 hulgas salvestatakse max. Kahe numbri LCM ei tohi olla väiksem kui max.

Katse ekspressiooni whilesilmus on alati tõene.

Igas iteratsioonis kontrollitakse, kas max on täiesti jagatav n1 ja n2-ga.

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

Kui see testtingimus ei vasta tõele, suurendatakse väärtust max 1ja iteratsiooni jätkatakse seni, kuni iflause testväljend on tõene.

Kahe numbri LCM leiad ka valemi abil:

 LCM = (num1 * num2) / GCD 

Siit saate teada, kuidas leida C-programmeerimises kahe numbri GCD.

LCM arvutamine GCD abil

 #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äljund

 Sisestage kaks positiivset täisarvu: 72 120 Kahe numbri 72 ja 120 LCM on 360. 

Huvitavad Artiklid...