Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Алгоритм поиска наибольшего общего делителя трех чисел

Автор: skizzik 13.12.2006 19:22

Доброго времени Суток!
Недавно мне задали лабу :
Найти наибольший общий делитель трех натуральных чисел,
использовать функции.
Подскажите пожалуйста алгоритм поиска.
Зараннее спасибо.

Автор: WhiteFang 13.12.2006 19:56

НОД(a, b, c)= НОД(НОД(a, b), c)

Вот НОД для двух чисел


Program Example_11;
Var x, y: Integer;
Begin
Writeln('Введите два числа');
Readln(x,y); {вводим два целых числа}
Repeat
If x>y Then x:=x Mod y
Else y:=y Mod x;
Until (x=0) Or (y=0);
{до тех пор, пока одно из чисел не станет равно нулю}
Writeln('НОД=', x+y)); {вывод НОД - без условного оператора, так как одно из чисел обязательно равно нулю}
Readln;
End.



Спасибо, volvo. Я случайно =)

Автор: volvo 13.12.2006 20:17

WhiteFang, проверяй программы перед выкладыванием, 1000 раз говорилось... Ты Repeat забыл...

Автору -
http://forum.pascal.net.ru/index.php?s=&showtopic=6525&view=findpost&p=48342
http://forum.pascal.net.ru/index.php?s=&showtopic=6072&view=findpost&p=45875
(в смысле, пользуемся поиском)

Автор: Fenrisulven 16.04.2008 17:45

спасибо, очень помогло!))