Функция, вычисляющая наибольший общий делитель

Задача

Написать функцию, вычисляющую наибольший общий делитель.

Решение

 

Алгоритм решения задачи: 

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

Программа на языке Паскаль: 

 

var
    k, l, n: integer;
 
function nod (var a,b: integer): integer;
    var c: integer;
    begin
        repeat
            if a > b then
                a := a mod b
            else
                b := b mod a;
        until (a = 0) or (b = 0);
 
        nod := a + b;
    end;
 
begin
 
    writeln ('Введите два числа: ');
    readln (k, l);
 
    n := nod (k, l);
 
    writeln ('НОД = ', n);
 
readln
end.

 

Тема

Процедуры, функции, рекурсии

Уровень

Комбинированные задачи