Программа находит наибольший общий делитель двух целых чисел, используя простейший циклический алгоритм
Категория: Delphi/Pascal
2012-03-02 16:18:51
Если одно или оба числа равны 0, возвращает |a+b|
code: #pascal
program nood; var a, b: integer; (---------------------------------------- Функция возвращает наибольший общий делитель двух заданных целых чисел, используя простейший циклический алгоритм Если одно или оба числа равны 0, возвращает |a+b| ----------------------------------------*) function NOD (a, b : integer) : integer; var min, i : integer; begin {если одно или оба числа равны 0} if ((a=0)or(b=0)) then begin NOD:=abs(a+b); exit; end; {находим минимальное из a и b} if a < b then min := a else min := b; {каждое из чисел 1..min проверяем на то, что и а, и b делятся на него без остатка} for i:=min downto 1 do if (((a mod i)=0) and ((b mod i)=0)) then begin NOD := i; exit; end; end; begin writeln('Программа находит максимальный общий делитель '+ 'двух заданных целых чисел, используя простейший циклический алгоритм'); write('Введите первое число '); readln(a); write('Введите второе число '); readln(b); writeln('НОД(',a,',',b,') = ',NOD(abs(a),abs(b))); writeln('Нажмите [Enter] для завершения программы'); readln; end.
автор: JaOleg
Поделиться: