Есть ответ 👍

Составить программу нахождения наименьшего общего кратного(нок) двух чисел m и n, используя формулу n*m=нод(m,n)*нок(n,m). разработать тесты для проверки правильности работы программы.

235
275
Посмотреть ответы 3

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

tutinae
4,5(89 оценок)

ответ:

если на паскале, то вот:

объяснение:

var

    a, b: integer;

function nod(a, b: integer): integer;

begin

    while a * b < > 0 do

        if a > b then

            a : = a mod b

        else

            b : = b mod a;

   

    nod : = a + b;

end;

begin

    readln(a, b);

    write('nok = ', a * b / nod(a, b));

end.

danilfkr
4,6(16 оценок)

в программе на питоне реализован алгоритм евклида для нахождения нод и найдено нок из формулы из условия. большая часть тестов для проверки использует случайные числа, для которых, например, проверяется, что нок и нод от (x, y) не изменяются, если их искать от (y, x), и т.д. (assert expr выбрасывает исключение, если expr ложно, так что если test сработало без ошибок, значит, всё ок)

def gcd_lcm(a, b):

    x, y = a, b

    while x ! = 0 and y ! = 0:

        x, y = y % x, x

    gcd = x + y

    lcm = a // gcd * b

    return gcd, lcm

def test():

    from random import randint

    x, y, z = [randint(1, 1000) for _ in range(3)]

    xx = gcd_lcm(x, x)

    xy = gcd_lcm(x, y)

    yx = gcd_lcm(y, x)

    yz = gcd_lcm(y, z)

    x1 = gcd_lcm(x, 1)

    zx_y = gcd_lcm(z * x, y)

    zx_zy = gcd_lcm(z * x, z * y)

    gcd_xy_z = gcd_lcm(xy[0], z)[0]

    gcd_x_yz = gcd_lcm(x,

    assert xx == (x, x)

    assert xy == yx

    assert xy[1] % xy[0] == 0

    assert xy[1] % x == 0

    assert xy[1] % y == 0

    assert x % xy[0] == 0

    assert y % xy[0] == 0

    assert x1[0] == 1

    assert x1[1] == x

    assert zx_y[0] % xy[0] == 0

    assert zx_y[1] % xy[1] == 0

    assert zx_zy[0] == z * xy[0]

    assert zx_zy[1] == z * xy[1]

    assert gcd_xy_z == gcd_x_yz

    assert gcd_lcm(2**7 * 3**15, 3**4 * 5**3) == (3**4, 2**7 * 3**15 * 5**3)

    assert gcd_lcm(7 * 917887, 7 * 850177) == (7, 7 * 850177 * 917887)

if __name__ == "__main__":

    for _ in range(100):

        test()


Ніколи не давайте приватної інформації про себе (прізвище, номер телефону, адресу, номер школи) без дозволу батьків. якщо хтось говорить вам, надсилає вам, або ви самі віднайшли у мережі щось, що бентежить вас, не намагайтеся розібратися в цьому самостійно. зверніться до батьків або вчителів - вони знають, що треба робити. зустрічі у реальному житті із знайомими по інтернет-спілкуванню не є дуже гарною ідеєю, оскільки люди можуть бути дуже різними у електронному спілкуванні і при реальній зустрічі. якщо ж ви все ж хочете зустрітися з ними, повідомте про це батьків, і нехай вони підуть на першу зустріч разом з вами. не відкривайте листи електронної пошти, файли або web-сторінки, отримані від людей, яких ви реально не знаєте або не довіряєте. нікому не давайте свій пароль, за виключенням дорослих вашої родини. завжди дотримуйтесь сімейних правил інтернет-безпеки: вони розроблені для того, щоб ви почували себе комфортно і безпечно у мережі. ніколи не робіть того, що може коштувати грошей вашій родині, окрім випадків, коли поруч з вами батьки. завжди будьте ввічливими у електронному листуванні, і ваші кореспонденти будуть ввічливими з вами. у електронних листах не застосовуйте текст, набраний у верхньому регістрі - це сприймається у мережі як крик, і може прикро вразити вашого співрозмовника. не надсилайте у листі інформації великого обсягу (картинки, фотографії тощо) без попередньої домовленості з вашим співрозмовником. не розсилайте листи з будь-якою інформацією незнайомим людям без їхнього прохання - це сприймається як "спам", і звичайно засмучує користувачів мережі. завжди поводьтеся у мережі так, як би ви хотіли, щоб поводилися з вами!

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

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

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

Caktus Image

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

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

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

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

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

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

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

GTP TOP NEWS