В чем проблема то?
> НОД(А,В) = НОД(В, А mod B) , если В не равен 0; НОД(А,0)=А
Вот тебе дано определение -- фактически алгоритм. По нему и можно сразу же написать:
function nod(a, b: longint): longint;
begin
if b <> 0 then
nod := nod(b, a mod b)
else
nod := a;
end;
var
a, b, c, d: longint;
begin
write('A B C D? ');
readln(a, b, c, d);
writeln('НОД(A, B): ', nod(a, b));
writeln('НОД(A, C): ', nod(a, c));
writeln('НОД(A, D): ', nod(a, d));
end.
От рекурсии можно при желании избавится, тогда надо использовать цикл.