sinnvoll wäre wohl etwas davon:
"größter gemeinsamer Teiler" oder "kleinstes gemeinsames Vielfaches"
und am Einfachsten ist (wie schon gezeigt), in einer Schleife alle möglichen (logischen) "Teiler" durchzutesten.
Delphi-Quellcode:
function GGT(a, b: Integer): Integer;
begin
// größten lögischen Teiler wählen
if Abs(a) < Abs(b)
then Result := Abs(a)
else Result := Abs(b);
// schleife zum durchtesten
while Result > 1
do
begin
// abbrechen wenn Teiler gefunden
if (a
mod Result = 0)
and (b
mod Result = 0)
then
break;
Dec(Result);
end;
end;
Delphi-Quellcode:
function GGT(a, b: Integer): Integer;
begin
// größten lögischen Teiler wählen
if Abs(a) < Abs(b)
then Result := Abs(a)
else Result := Abs(b);
// schleife zum durchtesten
while (Result > 1)
and ((a
mod Result <> 0)
or (b
mod Result <> 0))
do
Dec(Result);
end;
Delphi-Quellcode:
function GGT(a, b: Integer): Integer;
begin
// größten lögischen Teiler wählen
if Abs(a) < Abs(b) then Result := Abs(a)
else Result := Abs(b);
// schleife zum durchtesten
while (Result > 1) and ((a mod Result <> 0) or (b mod Result <> 0)) do
Result := Result div 2;
end;