Реализация:
Pascal:
function nod( a, b: longint): longint; begin
while (a <> 0) and (b <> 0) do
if a >= b then
a:= a mod b
else
b:= b mod a;
nod:= a + b;
end;
В рекурсивном виде:
function nod(var a, b: longint): longint;
begin
if (a = 0) or (b = 0) then
if a = 0 then
nod:= b
else
nod:= a
else
if a >= b then
nod:= nod( a mod b, b)
else
nod:= nod( a, b mod a)
end;
C:
int gcd(int a, int b) {while(b) b^=a^=b^=a%=b;
return a;
}
Та же функция в рекурсивном виде:
int gcd(int a, int b) {
if (b == 0)
return a;
return gcd(b, a % b);
}
Программа нахождения НОД и НОК алгоритмом Евклида на языке Pascal:
|