I dette eksempel lærer du at beregne LCM (Laveste fælles multiplum) af to tal indtastet af brugeren.
For at forstå dette eksempel skal du have kendskab til følgende C-programmeringsemner:
- C Programmeringsoperatører
- C hvis… ellers Erklæring
- C mens og gør … mens Loop
LCM for to heltal n1 og n2 er det mindste positive heltal, der er fuldstændigt deleligt med både n1 og n2 (uden en rest). For eksempel er LCM på 72 og 120 360.
LCM bruger mens og hvis
#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; )
Produktion
Indtast to positive heltal: 72 120 LCM på 72 og 120 er 360.
I dette program er de heltal, der er indtastet af brugeren, gemt i henholdsvis variabel n1 og n2.
Det største antal blandt n1 og n2 er gemt i maks. LCM på to tal kan ikke være mindre end max.
Testudtrykket af while
loop er altid sandt.
I hver iteration kontrolleres, om max er perfekt delelig med n1 og n2.
hvis (min% n1 == 0 && max% n2 == 0) (…)
Hvis denne testbetingelse ikke er sand, øges max med, 1
og iterationen fortsætter, indtil if
udsagnets testudtryk er sandt.
LCM med to tal kan også findes ved hjælp af formlen:
LCM = (num1 * num2) / GCD
Lær hvordan du finder GCD af to tal i C-programmering.
LCM-beregning ved hjælp af 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; )
Produktion
Indtast to positive heltal: 72 120 LCM for to tal 72 og 120 er 360.