Есть ответ 👍

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

144
314
Посмотреть ответы 3

Ответы на вопрос:

kasper212
4,7(80 оценок)

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

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.

Что-то у меня не  придумывается меньше, чем за 18 телодвижений. 1. залил полный бак в 10-литровый 2. перелил его в 9-литровый. в 10 остался 1 литр 3. 9 опустошил, теперь в нём пусто, а в 10 по-прежнему 1 л. 4. перелил 1 л в 9. этот 1 литр - назовём его переходящим остатком. опять погнали те же 4 телодвижения, по результатам переходящим остатком будет 2 литра. ещё раз - и получили переходящий остаток 3 литра ещё раз, и получили 4 литра. к этому моменту сделали этот цикл  уже 4 раза, итого 4*4 = 16 движений. опять делаем этот же цикл, но достаточно двух первых операций, и в 10-литровом баке получаем остаток 5 литров. итого, 16+2 = 18. ну, у меня так получилось. может кто лучше придумает.

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS