VBA Tipp: KGV / GGT ermitteln

Aus DBWiki
Wechseln zu: Navigation, Suche

Aufgabenstellung

Ich möchte den GGT (größten gemeinsamen Teiler) bzw. das KGV (kleinste gemeinsame Vielfache) zweier ganzer Zahlen ermitteln.

Lösung

Public Function GGT(Zahl1 As Long, Zahl2 As Long) As Long
Dim Merk As Long
  Do While Zahl1 > 0
    If Zahl1 < Zahl2 Then
      Merk = Zahl1
      Zahl1 = Zahl2
      Zahl2 = Merk
    End If
    Zahl1 = Zahl1 - Zahl2
  Loop
  GGT = Zahl2
End Function
 
Public Function KGV(Zahl1 As Long, Zahl2 As Long) As Long
Dim Merk As Long
  If Zahl1 > Zahl2 Then
    Merk = Zahl1
    Zahl1 = Zahl2
    Zahl2 = Merk
  End If
  Merk = Zahl2
  Do
    If Zahl2 Mod Zahl1 = 0 Then Exit Do
    Zahl2 = Zahl2 + Merk
  Loop
  KGV = Zahl2
End Function

Aufruf

Debug.Print GGT(8652,420)
 84


Wiki hinweis.png Anmerkung: Wie immer bei numerischen Operationen sind die Wertebereiche der verwendeten Zahlentypen zu beachten.