Вычисление наибольшего общего делителя двух целых неотрицательных чисел
Falk0ner, вс, 06/07/2008 - 15:35.
Вычисление наибольшего общего делителя двух целых неотрицательных чисел
{ **** UBPFD *********** by kladovka.net.ru ****
>>
Зависимости: System
Автор: Fenik, <a href="mailto:chook_nu@uraltc.ru">chook_nu@uraltc.ru</a>, Новоуральск
Copyright: Turbo Pascal / С.А. Немнюгин. - СПб: Издательство "Питер", 2000.
Дата: 27 октября 2002 г.
********************************************** }
function GCD(const m, n: LongWord): LongWord;
{Вычисление наибольшего общего делителя
двух неотрицательных целых чисел.
Если какое-то из чисел = 0, то функция возвратит 0.
Взято из учебника:
Turbo Pascal / С.А. Немнюгин. - СПб: Издательство "Питер", 2000.}
var p, n1, m1: LongWord;
begin
if (n = 0) or (m = 0) then Result := 0
else begin
if m < n then begin
n1 := m;
m1 := n;
end
else begin
n1 := n;
m1 := m;
end;
while n1 > 0 do begin
p := m1 mod n1;
m1 := n1;
n1 := p;
end;
Result := m1;
end;
end;
>>
Зависимости: System
Автор: Fenik, <a href="mailto:chook_nu@uraltc.ru">chook_nu@uraltc.ru</a>, Новоуральск
Copyright: Turbo Pascal / С.А. Немнюгин. - СПб: Издательство "Питер", 2000.
Дата: 27 октября 2002 г.
********************************************** }
function GCD(const m, n: LongWord): LongWord;
{Вычисление наибольшего общего делителя
двух неотрицательных целых чисел.
Если какое-то из чисел = 0, то функция возвратит 0.
Взято из учебника:
Turbo Pascal / С.А. Немнюгин. - СПб: Издательство "Питер", 2000.}
var p, n1, m1: LongWord;
begin
if (n = 0) or (m = 0) then Result := 0
else begin
if m < n then begin
n1 := m;
m1 := n;
end
else begin
n1 := n;
m1 := m;
end;
while n1 > 0 do begin
p := m1 mod n1;
m1 := n1;
n1 := p;
end;
Result := m1;
end;
end;
Пример использования:
p := GCD(54, 36); {p := 18}
Отправить комментарий