В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
maksgrant86
maksgrant86
18.02.2020 13:40 •  Информатика

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

Показать ответ
Ответ:
Fin208
Fin208
08.07.2020 22:57
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
0,0(0 оценок)
Ответ:
Annpetushok
Annpetushok
08.07.2020 22:57
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.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота