In diesem Beispiel lernen Sie, das LCM (niedrigstes gemeinsames Vielfaches) von zwei vom Benutzer eingegebenen Zahlen zu berechnen.
Um dieses Beispiel zu verstehen, sollten Sie die folgenden C-Programmierthemen kennen:
- C Programmieroperatoren
- C if… else Statement
- C während und mach … während Schleife
Das LCM von zwei ganzen Zahlen n1 und n2 ist die kleinste positive ganze Zahl, die sowohl durch n1 als auch durch n2 perfekt teilbar ist (ohne Rest). Zum Beispiel ist der LCM von 72 und 120 360.
LCM mit while und 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; )
Ausgabe
Geben Sie zwei positive ganze Zahlen ein: 72 120 Das LCM von 72 und 120 ist 360.
In diesem Programm werden die vom Benutzer eingegebenen Ganzzahlen in der Variablen n1 bzw. n2 gespeichert.
Die größte Zahl unter n1 und n2 ist in max. Der LCM von zwei Zahlen kann nicht kleiner als max sein.
Der Testausdruck der while
Schleife ist immer wahr.
In jeder Iteration wird geprüft, ob max durch n1 und n2 perfekt teilbar ist.
if (min% n1 == 0 && max% n2 == 0) (…)
Wenn diese Testbedingung nicht erfüllt ist, wird max um erhöht 1
und die Iteration fortgesetzt, bis der Testausdruck der if
Anweisung wahr ist.
Das LCM von zwei Zahlen kann auch mit der Formel ermittelt werden:
LCM = (num1 * num2) / GCD
Erfahren Sie, wie Sie die GCD zweier Zahlen in der C-Programmierung finden.
LCM-Berechnung mit 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; )
Ausgabe
Geben Sie zwei positive ganze Zahlen ein: 72 120 Das LCM der beiden Zahlen 72 und 120 ist 360.