Signatur
Beschreibung
gmp_lcm() ermittelt das kleinste gemeinsame Vielfache (kgV) der beiden übergebenen ganzen Zahlen. Das kgV ist die kleinste positive ganze Zahl, die durch beide Zahlen ohne Rest teilbar ist. Die Funktion arbeitet mit beliebig großen Ganzzahlen, da sie auf der GMP-Bibliothek (GNU Multiple Precision) basiert.
Die Funktion akzeptiert sowohl GMP-Objekte als auch gewöhnliche PHP-Integer oder numerische Strings, was die Verwendung sehr flexibel macht. Das Ergebnis wird stets als GMP-Objekt zurückgegeben und kann mit gmp_strval() oder gmp_intval() in einen lesbaren Wert umgewandelt werden.
Typische Einsatzgebiete sind Bruchrechnung (gemeinsame Nenner finden), Kryptografie, Zeitplanung (Synchronisationszyklen) sowie überall dort, wo mathematisch exaktes Arbeiten mit sehr großen Ganzzahlen erforderlich ist.
Das Vorzeichen der Eingaben wird ignoriert: gmp_lcm(-4, 6) liefert dasselbe Ergebnis wie gmp_lcm(4, 6). Ist einer der Werte 0, ist das kgV ebenfalls 0.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $num1 Pflicht | GMP|int|string | Erste ganze Zahl. Kann ein GMP-Objekt, ein PHP-Integer oder ein numerischer String sein. |
|
| $num2 Pflicht | GMP|int|string | Zweite ganze Zahl. Kann ein GMP-Objekt, ein PHP-Integer oder ein numerischer String sein. |
Rückgabewert
GMP-Objekt zurück, das das kleinste gemeinsame Vielfache der beiden Eingabewerte darstellt. Ist einer der Werte 0, wird 0 zurückgegeben.Beispiele
Einfaches kgV zweier Ganzzahlen berechnen
<?php
$result = gmp_lcm(12, 18);
echo gmp_strval($result); // 36
$result2 = gmp_lcm(4, 6);
echo PHP_EOL . gmp_strval($result2); // 12
Gemeinsamen Nenner für Bruchaddition ermitteln
<?php
// 1/4 + 1/6 = ?
$nenner1 = 4;
$nenner2 = 6;
$kgv = gmp_lcm($nenner1, $nenner2);
$gemeinsamerNenner = gmp_intval($kgv);
$zaehler1 = 1 * ($gemeinsamerNenner / $nenner1);
$zaehler2 = 1 * ($gemeinsamerNenner / $nenner2);
$zaehlerSumme = $zaehler1 + $zaehler2;
echo "1/{$nenner1} + 1/{$nenner2} = {$zaehlerSumme}/{$gemeinsamerNenner}";
// Ergebnis: 5/12
kgV mit sehr großen Zahlen (GMP-Stärke)
<?php
$a = gmp_init('123456789012345678901234567890');
$b = gmp_init('987654321098765432109876543210');
$result = gmp_lcm($a, $b);
echo gmp_strval($result);
Verhalten bei Null und negativen Zahlen
<?php
// Negativer Wert: Vorzeichen wird ignoriert
$result1 = gmp_lcm(-12, 18);
echo gmp_strval($result1) . PHP_EOL; // 36
// Null: kgV ist immer 0
$result2 = gmp_lcm(0, 18);
echo gmp_strval($result2) . PHP_EOL; // 0
// Wichtig · Fallstricke
Verfügbarkeit: gmp_lcm() wurde erst mit PHP 8.0.0 eingeführt. Für ältere PHP-Versionen muss das kgV manuell über den Zusammenhang lcm(a, b) = |a * b| / gcd(a, b) mit Hilfe von gmp_gcd(), gmp_mul() und gmp_div_q() berechnet werden.
Die GMP-Erweiterung muss in der PHP-Installation aktiviert sein (--with-gmp beim Kompilieren). In den meisten modernen Distributionen und Hosting-Umgebungen ist sie standardmäßig vorhanden.