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 while
silmus 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 1
ja iteratsiooni jätkatakse seni, kuni if
lause 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.