468 читали · 9 месяцев назад
Как найти наибольший общий делитель (НОД) в Python
Введение В данной статье рассмотрим три способа найти наибольший общий делитель (НОД) в Python. Использование функции math.gcd() Для нахождения НОД мы можем воспользоваться готовой функцией gcd() из встроенного модуля math. Разбираем модуль math в Python Синтаксис функции math.gcd(): import math math.gcd(int1, int2) # Возвращает наибольший общий делитель двух целых чисел int1 и int2 Примеры: import math print(math.gcd(3, 6)) # Вывод: 3 print(math.gcd(6, 12)) # Вывод: 6 print(math.gcd(12, 36)) # Вывод: 12 print(math...
286 читали · 4 года назад
Задача 527. Алгоритм Евклида
А теперь к настоящим алгоритмам, а не использованию уже написанных в стандартной библиотеке. Читаем условие задачи: Алгоритм Евклида - это, действительно, эффективный способ вычисления наибольшего общего делителя двух чисел. Но та версия, которую изучил Дима из условия задачи является неоптимальной. Давайте посмотрим на примере. Если даны два числа 1000000 и 12, то шаг 4 будет выполняться очень много раз (83333), после чего a будет равно 4, а b - 12 (затем, они, конечно, поменяются местами). На примере мы можем заметить, что 1000000 = 83333 * 12 + 4, или в общем виде a = k * b + r...