<?php
# Die folgende Funktion wird immer dann aufgerufen, wenn in ihr Programm Daten eingegeben werden..
# Sie können sie ändern, um andere Quellen zu verwenden.
function input() {
return fgets(STDIN);
}
function ggT($a, $b) {
# Die Funktion ggT berechnet den größten gemeinsamen Teiler zweier Zahlen a und b.
# Die Zwischenergebnisse und das Endergebnis der Funktion ggT werden in einer Variable gespeichert. Dafür wird die Variable resultat deklariert.
# Im Fall, dass die erste Zahl a gleich 0 ist, ist das Ergebnis gleich b (der zweiten Zahl). Im Fall, dass a jedoch ungleich 0 ist, wird die ggT Funktion mit den geänderten beziehungsweise angepassten Argumenten ggT(b MOD a, a).
if ($a == 0) {
$resultat = $b;
} else {
$resultat = ggT($b % $a, $a);
}
return resultat;
}
function kgV($a, $b) {
# Die Funktion kgV soll das kleinste gemeinsame Vielfach zweier Zahlen a und b berechnen. Die zwei Zahlen wurden als Argument an die kgV Funktion übergeben.
# Um das Ergebnis zu speichern, wird in einer Variable gespeichert. Dafür wird die Variable resultat deklariert.
# Um das kgV zu berechnen werden die zwei Zahlen a und b zuerst multipliziert und das Ergebnis wird dann durch den größten gemeinsamen Teiler der zwei Zahlen a und b geteilt. Das Ergebnis wird in der Variablen resultat gespeichert.
$resultat = $a * $b / ggT($a, $b);
return resultat;
}
# Main
# Das Programm berechnet das kleinste gemeinsame Vielfache, kurz kgV, zweier Zahlen.
# Um die erste Zahl zu speichern, wird die Variable A deklariert.
# Um die zweite Zahl zu speichern, wird die Variable B deklariert.
# Um das Ergebnis zu speichern, wird die Variable ergebnis deklariert.
echo "Geben Sie die erste Zahl an:" . PHP_EOL;
$a = input();
echo "Geben Sie die zweite Zahl an:" . PHP_EOL;
$b = input();
# Die Fallunterscheidung, ob die erste Zahl größer als die zweite Zahl ist, erleichtert das weitere Vorgehen. Je nach Ergebnis wird Funktion kgV mit den Argumenten a, b beziehungsweise mit der getauschten Variante b, a aufgerufen. An dem Ergebnis ändert sich dadurch aber nichts, da kgV(a, b) = kgV(b, a) ist.
# Unabhängig vom Ausgang des Vergleichs wird die Funktion kgV aufgerufen, die wiederum selbst intern eine weitere Funktion, nämlich ggT (größter gemeinsamer Teiler) aufruft. Sodass hier eine Funktion aufgerufen wird, die wieder eine Funktion aufruft, es sind also ineinander verschachtelte Funktionen.
if ($a > $b) {
$ergebnis = kgV($a, $b);
} else {
$ergebnis = kgV($b, $a);
}
echo "Das kleinste gemeinsame Vielfache ist:" . PHP_EOL;
echo $ergebnis . PHP_EOL;
?>