Найти наибольший общий делитель следующих чисел(16 32 40 64 80 128). Использовать процедуру для нахождения общего делителя. ПАСКАЛЬ!!!

Думаю нет большой разницы между процедурой и функцией, просто функция куда удобнее.
Для нахождения нода используется алгоритм Эвклида

//PascalABC.Net

function NOD(A, B: integer): integer;
begin
    while A <> B do
        if A > B then A := A - B else B := B - A;
    NOD := A;
end;

procedure pNOD(A, B: integer; var NOD: integer);
begin
    while A <> B do
        if A > B then A := A - B else B := B - A;
    NOD := A;
end;

begin
    var a: Array of integer := (16, 32, 40, 64, 80, 128);
    var n := a[low(a)];
    for var i := low(a) to high(a) do
        pNOD(n, a[i], n);
   
    Writeln(n);
end.

Оцени ответ
Подпишись на наш канал в телеграм. Там мы даём ещё больше полезной информации для школьников!

Загрузить картинку