Составьте программу нахождения наибольшего общего делителя трех чисел, используя формулу: нод(а,в,с)=нод(нод(а,в),с) используя алгоритм евклида в паскале
Const n = 6; // число строк m = 6; // число столбцов
var a: array[1..n, 1..m] of integer; // основной массив Rext: array[1..n, 1..2] of integer; // номера столбцов с min и max в строках Cext: array[1..2, 1..m] of integer; // номера строк с min и max в столбцах i, j, amin, amax: integer;
begin // заполняем массив А случайными числами Randomize; writeln('Исходный массив'); for i := 1 to n do begin for j := 1 to m do begin a[i, j] := random(100) - 50; write(a[i, j]:4); end; writeln; end; // Заполняем массив Rext n x 2 for i := 1 to n do begin amin := 10000; //заведомо больше a[i,j] amax := -10000; //заведомо меньше a[i,j] for j := 1 to m do begin if amin > a[i, j] then begin amin := a[i, j]; Rext[i, 1] := j end; if amax < a[i, j] then begin amax := a[i, j]; Rext[i, 2] := j end end; end; // Заполняем массив Cext 2 x m for j := 1 to m do begin amin := 10000; //заведомо больше a[i,j] amax := -10000; //заведомо меньше a[i,j] for i := 1 to n do begin if amin > a[i, j] then begin amin := a[i, j]; Cext[1, j] := i end; if amax < a[i, j] then begin amax := a[i, j]; Cext[2, j] := i end end end; writeln; // Ищем седловые точки writeln('*** Седловые точки ***'); for i := 1 to n do begin j := Rext[i, 1]; if Cext[2, j] = i then write('[', i, ',', j, '] ') else begin j := Rext[i, 2]; if Cext[1, j] = i then write('[', i, ',', j, '] ') end end; writeln end.
Const N = 5; var i, j: integer; a: array[1..N, 1..N] of integer; min, max: array[1..N] of integer; begin writeln('Исходный массив: '); for i := 1 to N do begin for j := 1 to N do begin a[i, j] := Random(10); write(a[i, j] : 3); if (j = 1) or (max[i] > a[i, j]) then max[i] := a[i, j]; if (i = 1) or (min[j] < a[i, j]) then min[j] := a[i, j]; end; writeln; end; writeln('Седловые точки: '); for i := 1 to N do for j := 1 to N do if max[i] = min[j] then writeln('[', i, '; ', j, ']'); end.
function НОД(a, b: integer): integer;
begin
while b > 0 do
(a, b) := (b, a mod b);
Result := a
end;
begin
var (a, b, c) := ReadInteger3;
НОД(НОД(a, b), c).Println
end.
78 294 5706 Замечание: числа должны быть неотрицательными