Function nok(a, b: integer): integer; var c, d, e: integer; begin c : = a; d : = b; while (d > 0) do begin c : = c mod d; e : = c; c : = d; d : = e; end; result : = (a div c) * b; end; const n = 4; var a: array [1..n] of integer; b: array [1..n*n] of integer; i, j, min_: integer; begin writeln('введите n целых чисел, только вот давайте без нулей, детсадовцы знают, что на 0 делить нельзя, плохо это'); min_ : = 2147483647; for i : = 1 to n do readln(a[i]); for i : = 1 to n do for j : = 1 to n do begin if (i = j) then continue; b[i + n * (j - 1)] : = nok(a[i], a[j]); min_ : = min(b[i + n * (j - 1)], min_); end; write(' '); for i : = 1 to n do write(i: 5); writeln(); for i : = 1 to n do begin write(i: 5); for j : = 1 to n do write(b[i + n * (j - 1)]: 5); writeln(); end; writeln('min: ', min_); end.
jstepanova
26.05.2020
Const 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