Как найти нок в питоне
Перейти к содержимому

Как найти нок в питоне

Как найти наименьшее общее кратное с помощью Python

В этой статье о Python мы рассмотрим, как получить наименьшее общее кратное (НОК) двух чисел. Для этого мы применим математическую формулу, опираясь также на наибольший общий делитель.

Если вдруг вы не знаете, наименьшее общее кратное двух чисел – это наименьшее натуральное число, отличное от нуля, которое делится на каждое из них без остатка.

Давайте рассмотрим пример. Для чисел 20 и 6 есть кратные 60, 120 и другие.

Хотя существует несколько кратных чисел, нас интересует наименьшее из них, которым в данном случае является 60. Нет меньшего числа, которое было бы кратно обоим.

Формула

Чтобы получить наименьшее общее кратное в Python, мы должны применить формулу.

НОК(a, b) = (a * b) / НОД(a, b)

Здесь мы умножим a на b, а затем разделим результат на наибольший общий делитель (НОД) этих двух чисел.

Нахождение наименьшего общего кратного (НОК) при помощи рекурсии

Программа принимает на вход два числа и находит наименьшее общее кратное (НОК) при помощи рекурсии.

Решение задачи

  1. Принимаем два числа и записываем их в отдельные переменные.
  2. Вводим переменную, которая в начале работы функции принимает значение наибольшей из двух переменных.
  3. Проверяем, делится ли без остатка число, содержащееся во вновь введенной переменной, на оба данных нам числа одновременно.
  4. Если делится, то функция прекращает свою работу и выводит это число, которое и будет наименьшим общим кратным (НОК).
  5. Если нет, то опять вызывается эта рекурсивная функция, в которой значение переменной еще раз увеличивается на величину наибольшего из данных в задаче чисел. И так будет повторяться, пока не выполнится условие делимости без остатка на оба числа.
  6. После того как функция завершит свою работу, значение наименьшего общего кратного (НОК) выводится на экран.

Исходный код

Ниже дан исходный код, который осуществляет нахождение наименьшего общего кратного (НОК) с использованием рекурсии. Результаты работы программы также даны ниже.

Объяснение работы программы

  1. Пользователь вводит два числа и они записываются в переменные a и b .
  2. Также вводится еще одна переменная, lcm.multiple , которая для начала инициируется нулем.
  3. Далее проверяется, какое из введенных чисел больше, чтобы передать их в рекурсивную функцию lcm() в порядке возрастания.
  4. В функции lcm() на первом шаге значение переменной увеличивается на величину наибольшего из введенных пользователем чисел. То есть при первом вызове функции значение переменной становится равным этому числу.
  5. Затем происходит проверка, делится ли значение переменной lcm.multiple без остатка на оба наших числа одновременно. Если делится, то функция прекращает свою работу и выводит в качестве результата значение переменной lcm.multiple .
  6. Если нет, то опять вызывается рекурсивная функция lcm() , в которой значение переменной lcm.multiple еще раз увеличивается на величину наибольшего из данных в задаче чисел. И так будет повторяться, пока не выполнится условие делимости без остатка на оба числа.
  7. После того как функция завершит свою работу, значение наименьшего общего кратного (НОК) выводится на экран.

Результаты работы программы

python logo

Английский для программистов

Наш телеграм канал с тестами по английскому языку для программистов. Английский это часть карьеры программиста. Поэтому полезно заняться им уже сейчас

Нахождение НОК и НОД в Python — примеры

В данном уроке мы узнаем, как найти наименьшее общее кратное (НОК) и наибольший общий делитель (НОД) с помощью языка программирования Python.

Но прежде чем мы начнем, давайте разберем, что обозначает Least Common Multiple (LCM) — наименьшее общее кратное.

НОК: наименьшее общее кратное

Это понятие арифметики и системы счисления. НОК двух целых чисел a и b обозначается НОК(a,b). Это наименьшее натуральное число, которое делится и на «а», и на «b».

Например: у нас есть два целых числа 4 и 6. Найдем НОК:

  • Кратные 4:
  • Кратные 6:

Общие кратные 4 и 6 — это просто числа, которые есть в обоих списках:

НОК — это наименьший общий множитель, поэтому он равен 12.

Поскольку мы поняли основную концепцию НОК, давайте рассмотрим следующую программу для нахождения НОК заданных целых чисел.

Эта программа сохраняет два числа в num1 и num2 соответственно. Эти числа передаются в функцию calculate_lcm(). Функция возвращает НОК двух чисел.

Внутри функции мы сначала определили большее из двух чисел, поскольку наименьшее общее кратное может быть больше или равно наибольшему числу. Затем мы используем бесконечный цикл while, чтобы перейти от этого числа и дальше.

На каждой итерации мы проверяли, идеально ли делят оба числа число. Если это так, мы сохранили число как НОК и вышли из цикла. В противном случае число увеличивается на 1, и цикл продолжается.

НОД: наибольший общий делитель

В этом разделе мы разберем, как найти Highest Common Factor (HCF) — наибольший общий делитель (НОД) в языке программирования Python.

Наибольший общий делитель двух или более целых чисел, когда хотя бы одно из них не равно нулю, является наибольшим положительным целым числом, которое без остатка делит целые числа. Например, НОД 8 и 12 равен 4.

У нас есть два целых числа 8 и 12. Найдем наибольший общий делитель.

  • Делители числа 8:
  • Делители числа 12:

НОД 8 и 12 равны 4.

Теперь давайте рассмотрим пример, основанный на нахождении НОД двух заданных чисел.

В приведенном выше фрагменте кода два целых числа, хранящиеся в переменных num1 и num2, передаются в функцию calculate_hcf(). Функция вычисляет НОД для этих двух чисел и возвращает его.

Внутри функции мы должны определить меньшее число, поскольку НОД может быть меньше или равен наименьшему числу. Затем мы использовали цикл for, чтобы перейти от 1 к этому числу.

На каждой итерации мы должны проверять, точно ли число делит оба входных числа. Если это так, мы должны сохранить число как НОД. По завершении цикла мы получаем наибольшее число, которое идеально делит оба числа.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *