А теперь к настоящим алгоритмам, а не использованию уже написанных в стандартной библиотеке. Читаем условие задачи: Алгоритм Евклида - это, действительно, эффективный способ вычисления наибольшего общего делителя двух чисел. Но та версия, которую изучил Дима из условия задачи является неоптимальной. Давайте посмотрим на примере. Если даны два числа 1000000 и 12, то шаг 4 будет выполняться очень много раз (83333), после чего a будет равно 4, а b - 12 (затем, они, конечно, поменяются местами). На примере мы можем заметить, что 1000000 = 83333 * 12 + 4, или в общем виде a = k * b + r...
Здравствуйте, дорогие читатели! Сегодня мы разберем элементарный способ нахождения НОД. Чаще всего, наибольший общий делитель находят с помощью разложения на простые множители. Так как этот способ самый привычный для нас, то его мы сегодня трогать не будем. На самом деле, существуют два способа вычисления НОД с помощью алгоритма Евклида. Но, Евклид сформулировал одно единственное правило, с помощью которого находится наибольший общий делитель. Хотя, если уж совсем честно, то Евклид и вовсе этого правила не формулировал...