C Program til at finde LCM med to numre

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 whileloop 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, 1og iterationen fortsætter, indtil ifudsagnets 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. 

Interessante artikler...