#include
#include
#include
#include
#include
using namespace std;
// Headers
string toString (double);
int toInt (string);
double toDouble (string);
int main() {
// Für die erste Zahl wird die Variable A deklariert.
int a;
// Für die zweite Zahl wird die Variable B deklariert.
int b;
// Für die Berechnung werden einige Hilfsvariablen benötigt.
// Um die Möglichkeit zu haben, die zwei Zahlen miteinander zu vertauschen zu können, wird die Variable c deklariert.
int c;
// Als Speicher für den Zählerstand innerhalb der while Schleife wird die Variable k deklariert.
int k;
// Als Abbruchbedingung für die while Schleife wird die Variable r deklariert.
int r;
// Die Zwischenergebnisse und das Endergebnis werden in einer Variablen gespeichert. Dafür wird die Variable kgV deklariert.
int kgV;
cout << "Geben Sie die erste Zahl an: " << endl;
cin >> a;
cout << "Geben Sie die zweite Zahl an: " << endl;
cin >> b;
// Die Variable k wird mit dem Wert 0 initialisiert.
k = 0;
// Hier wird geprüft, ob A kleiner als B ist, falls ja, werden die zwei Zahlen miteinander vertauscht. Der Tausch erfolgt über die Variable c. Im Fall, dass A nicht kleiner als B ist, beginnt die Berechnung.
if (a < b) {
c = a;
a = b;
b = c;
}
do {
// Bei jedem Durchlaufen der while Schleife wird der Wert der Variable k um 1 erhöht.
k = k + 1;
// In der Variable kgV wird das Zwischenergebnis gespeichert. Dabei wird die kleinere der beiden Zahlen mit dem Wert der Variablen k multipliziert. Da der Wert k sich bei jedem Durchlaufe durch die Schleife um 1 erhöht, wird der Wert der Variablen kgV bei jedem Durchlauf um der Wert der Variablen A erhöht.
kgV = a * k;
// Mithilfe der Modulo Funktion wird geprüft, ob das Zwischenergebnis in Variable kgV bereits das Endergebnis ist. Dazu wird kgV MOD B berechnet. Das Ergebnis der Berechnung wird in der Variablen r gespeichert.
r = kgV % b;
// Solange r ungleich 0 ist, wird die while Schleife durchlaufen. Im Fall, dass r gleich 0 ist, wird die Schleife beendet.
} while (r != 0);
cout << "Das kleinste gemeinsame Vielfache der zwei Zahlen ist: " << endl;
cout << kgV << endl;
return 0;
}
// Im Folgenden werden Funktionen zur Typumwandlung implementiert.
string toString (double value) { //int auch
stringstream temp;
temp << value;
return temp.str();
}
int toInt (string text) {
return atoi(text.c_str());
}
double toDouble (string text) {
return atof(text.c_str());
}