НОД и НОК
Наибольшим общим делителем (НОД) целых чисел
Числа
С наибольшим общим делителем тесно связано понятие наименьшего общего кратного (НОК) — наименьшего целого числа, которое делится одновременно на
можно использовать для вычисления наименьшего общего кратного. Например,
Один из способов нахождения
Алгоритм Евклида дает эффективный способ вычисления
Например,
Этот алгоритм можно реализовать следующим образом:
def gcd(a, b):
while b:
a, b = b, a % b
return a
Это быстрый алгоритм: при любых while
не превышает сотни.
Функции
Свойства НОД
- Коммутативность:
. - Ассоциативность:
- Наибольший общий делитель
и делится на любой общий делитель этих чисел. Пример: для чисел и наибольший общий делитель равен ; он делится на все общие делители этих чисел: - Если
делится на , то . В частности, - Если
и — взаимно простые числа, то (чётных чисел) .
Свойства НОК
- Коммутативность:
. - Ассоциативность:
- Если
делится на , то . В частности, - Если
и — взаимно простые числа, то
Для нахождения НОД и НОК в Python можно использовать функции
Пример 1
Найдите наибольший общий делитель чисел
from math import gcd
a = int(input())
b = int(input())
nod = gcd(a, b)
print(f"{nod}")
6
15
3
Пример 2
Найдите наименьшее общее кратное всех
from math import lcm
n = int(input())
a = list(map(int, input().split()))
nok = lcm(*a)
print(f"{nok}")
4
50 20 40 100
200