ggT in Excel via Makro berechnen?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Function GGT1(a As Long, b As Long) As Long

So ungefähr.  

 While a <> b

     If a > b Then

      a = a - b

     Else

      b = b - a

     End If

   Loop While a <> b

  GGT1 = a

End Function

Function GGT2(ByVal a As Long, ByVal b As Long) As Long

   While (a > 0) And (b > 0) ' Abbruch, sobald a*b <= 0

     If a > b Then ' Der größere Wert wird überschrieben

      a = a Mod b

     Else

      b = b Mod a

     End If

   Wend

  GGT2 = a + b ' Ein Summand ist sicher 0

End Function

Public Function ggT3(A, B) As Long

   Dim Rest As Long, TempA As Long, TempB As Long

  

   ' Fehlerprüfung

   If IsNull(A) Or IsNull(B) Then Exit Function

   If (A = 0) Or (A <> Int(A)) Then Exit Function

   If (B = 0) Or (B <> Int(B)) Then Exit Function

  ggT3 = 1

  TempA = Abs(A)

  TempB = Abs(B)

   Do

    Rest = TempA Mod TempB

    TempA = TempB

    TempB = Rest

   Loop While (Rest <> 0)

  ggT3 = TempA

End Function

69sebi69 
Fragesteller
 15.10.2023, 19:33

Vielen vielen Dank, du hast gerade eine ganze Klasse gerettet

1