Написать программу на паскале.Дано n целых чисел. Найти среди них пару чисел, для которых наименьшее общее кратное имеет наименьшее значение.

Написать программу на паскале.Дано n целых чисел. Найти среди них пару чисел, для которых наименьшее общее кратное имеет наименьшее значение.
Гость
Ответ(ы) на вопрос:
Гость
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.
Гость
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
Не нашли ответ?
Ответить на вопрос
Похожие вопросы