function NOK(a, b: integer): integer; var c: integer; begin if a = b then NOK := a else begin c := a * b; repeat if a > b then a := a - b else b := b - a; until a = b; NOK := c div a end end;
var a: array[1..m] of integer; i, j, n, p, q, nk, mn: integer;
begin Randomize; Write('Введите количество элементов в массиве (2..50)- '); Readln(n); Writeln('Исходный массив'); for i := 1 to n do begin a[i] := Random(100) + 1; Write(a[i], ' ') end; Writeln; p := a[i]; q := a[2]; mn := p * q; for i := 1 to n - 1 do for j := i + 1 to n do begin nk := NOK(a[i], a[j]); if (mn > nk) then begin p := a[i]; q := a[j]; mn := nk end end; Writeln('Пара: ', p, '-', q, ' НОК=', mn); end.
Answers & Comments
m = 50;
function NOK(a, b: integer): integer;
var
c: integer;
begin
if a = b then NOK := a
else begin
c := a * b;
repeat
if a > b then a := a - b else b := b - a;
until a = b;
NOK := c div a
end
end;
var
a: array[1..m] of integer;
i, j, n, p, q, nk, mn: integer;
begin
Randomize;
Write('Введите количество элементов в массиве (2..50)- ');
Readln(n);
Writeln('Исходный массив');
for i := 1 to n do
begin
a[i] := Random(100) + 1;
Write(a[i], ' ')
end;
Writeln;
p := a[i];
q := a[2];
mn := p * q;
for i := 1 to n - 1 do
for j := i + 1 to n do
begin
nk := NOK(a[i], a[j]);
if (mn > nk) then
begin
p := a[i];
q := a[j];
mn := nk
end
end;
Writeln('Пара: ', p, '-', q, ' НОК=', mn);
end.
Тестовое решение:
Введите количество элементов в массиве (2..50)- 20
Исходный массив
19 36 99 86 79 83 73 69 27 14 87 67 49 84 98 79 38 4 60 22
Пара: 14-4 НОК=28