Найти наибольший общий делитель следующих чисел(16 32 40 64 80 128). Использовать процеду
Найти наибольший общий делитель следующих чисел(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.
Не нашли ответ?
Похожие вопросы