Задать вопрос
13 июня, 22:20

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

+2
Ответы (2)
  1. 13 июня, 22:39
    0
    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
  2. 14 июня, 01:55
    0
    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.
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Написать программу на паскале. Дано n целых чисел. Найти среди них пару чисел, для которых наименьшее общее кратное имеет наименьшее ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы