Функция lcm
Функция lcm вычисляет наименьшее общее кратное (НОК)
для двух чисел или массивов поэлементно. Результатом является
наименьшее положительное целое число, которое делится на оба
входных числа без остатка. Функция работает только с целыми
числами и возвращает массив того же размера, что и входные
данные.
Синтаксис
np.lcm(x1, x2, out=None, where=True)
Параметры функции:
x1, x2 - входные массивы или скаляры,
для которых вычисляется НОК. Могут быть целыми числами
или массивами целых чисел.
out - необязательный параметр, задаёт место
для сохранения результата.
where - необязательный параметр, определяет
условие, при котором вычисляется НОК.
Пример с двумя числами
Вычислим наименьшее общее кратное для чисел 4 и 6:
import numpy as np
res = np.lcm(4, 6)
print(res)
Результат выполнения кода:
12
Пример с массивами
Вычислим НОК для двух массивов одинаковой длины:
import numpy as np
arr1 = np.array([2, 3, 4])
arr2 = np.array([3, 5, 6])
res = np.lcm(arr1, arr2)
print(res)
Результат выполнения кода:
[6 15 12]
Пример с вещанием
Функция поддерживает вещание, поэтому можно передать скаляр и массив:
import numpy as np
arr = np.array([2, 4, 6])
res = np.lcm(3, arr)
print(res)
Результат выполнения кода:
[6 12 6]
Пример с отрицательными числами
Функция корректно обрабатывает отрицательные числа, возвращая всегда положительное значение:
import numpy as np
res = np.lcm(-4, 6)
print(res)
Результат выполнения кода:
12
Пример с нулём
При вычислении НОК с нулём результатом всегда будет ноль:
import numpy as np
res = np.lcm(0, 5)
print(res)
Результат выполнения кода:
0
Пример с использованием параметра out
Передадим массив для сохранения результата:
import numpy as np
arr1 = np.array([6, 8, 10])
arr2 = np.array([4, 12, 15])
res = np.empty(3, dtype=np.int64)
np.lcm(arr1, arr2, out=res)
print(res)
Результат выполнения кода:
[12 24 30]
Пример с многомерными массивами
Функция работает с многомерными массивами любой формы:
import numpy as np
arr1 = np.array([[2, 3], [4, 5]])
arr2 = np.array([[3, 4], [6, 7]])
res = np.lcm(arr1, arr2)
print(res)
Результат выполнения кода:
[[6 12]
[12 35]]