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

EkaterinaLis13 EkaterinaLis13    2   21.07.2019 14:50    1

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

//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.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика