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(ByVal Zahl1 As Long, ByVal Zahl2 As Long) As Long
 
   'Quelle: http://www.dbwiki.net/
 
   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(ByVal Zahl1 As Long, ByVal Zahl2 As Long) As Long
 
   'Quelle: http://www.dbwiki.net/
 
   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)  'ergibt: 84


Wiki hinweis.png

Anmerkung:

Wie immer bei numerischen Operationen sind die Wertebereiche der verwendeten Zahlentypen zu beachten.