Задание: алгоритм Евклида нахождения наибольшего общего делителя (НОД) неотрицательных целых чисел основан на следующих свойствах этой величины. Пусть m и n - одновременно не равные нулю целые неотрицательные числа и пусть m>=n. Тогда, если n=0, то НОД(m,n)=m, а если n<>0, то для чисел m, n и r, где r - остаток от деления m на n, выполняется равенство НОД(m,n)=НОД(n,r).
Код:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var m,n,r:integer;
function NOD(m,n:integer):integer;
begin
try
writeln('vvedite m and n');
readln(m,n);
while (m>=n)and(NOD(m,n)<>0) do
if n=0 then NOD:=m
else begin
r:=m mod n;
m:=n;
n:=r;
NOD:=NOD(m,n);
end;
writeln('NOD');
readln;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.