Решим двумя вариантами: по Евклиду и с помощью оператора mod.

Проще сформулировать алгоритм Евклида так: если даны натуральные числа a и b и, пока получается положительное число, по очереди вычитать из большего меньшее, то в результате получится НОД.
решим двумя вариантами по евклиду и с помощью деления по модулю.

вариант первый
program nod_ewklid;
var
a, b : integer;
nod : integer;
begin
writeln('Введите первое число.'); readln(a);
writeln('Введите второе число.'); readln(b);
nod := 0;
while (a > 0) and (b > 0) do
begin
if a >= b then a := a - b
else b := b - a;
if a >= b then nod := a
else nod := b;
end;
if nod = 0 then writeln('НОД не найден.')
else writeln('НОД = ', nod);

readln;
end.

с помощью оператора mod

program nod_mod;
var
a, b : integer;
nod : integer;
begin
writeln('Введите первое число.'); readln(a);
writeln('Введите второе число.'); readln(b);
nod := 0;
while (a > 0) and (b > 0) do
begin
if a >= b then a := a mod b
else b := b mod a;
nod := a + b;
end;

if nod = 0 then writeln('НОД не найден.')
else writeln('НОД = ', nod);

readln;
end.
 

Скачать оба решения.

Hosted by uCoz