In dit voorbeeld leert u de LCM (laagste gemene veelvoud) te berekenen van twee getallen die door de gebruiker zijn ingevoerd.
Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende C-programmeeronderwerpen:
- C Programmeringsoperatoren
- C if… else Statement
- C while en do… while Loop
De LCM van twee gehele getallen n1 en n2 is het kleinste positieve gehele getal dat perfect deelbaar is door zowel n1 als n2 (zonder een rest). De LCM van 72 en 120 is bijvoorbeeld 360.
LCM met while en 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; )
Uitvoer
Voer twee positieve gehele getallen in: 72120 De LCM van 72 en 120 is 360.
In dit programma worden de gehele getallen ingevoerd door de gebruiker opgeslagen in respectievelijk variabele n1 en n2.
Het grootste aantal van n1 en n2 wordt opgeslagen in max. De LCM van twee nummers mag niet kleiner zijn dan max.
De testuitdrukking van while
loop is altijd waar.
Bij elke iteratie wordt gecontroleerd of max perfect deelbaar is door n1 en n2.
if (min% n1 == 0 && max% n2 == 0) (…)
Als deze testvoorwaarde niet waar is, wordt max verhoogd met 1
en gaat de iteratie door totdat de testuitdrukking van de if
instructie waar is.
De LCM van twee getallen kan ook worden gevonden met behulp van de formule:
LCM = (num1 * num2) / GCD
Leer hoe u de GCD van twee getallen kunt vinden in C-programmering.
LCM-berekening met 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; )
Uitvoer
Voer twee positieve gehele getallen in: 72120 De LCM van twee nummers 72 en 120 is 360.