Основы программирования на C++, PASCAL
Его идея основана на том свойстве, что если M > N, то НОД(М, N) = НОД(М — N,N). Попробуйте самостоятельно доказать это свойство. Другой факт, лежащий в основе алгоритма, тривиален — НОД(М, M) = М. Для «ручного» выполнения этот алгоритм можно описать в форме следующей инструкции:
1. Если числа равны, то взять их общее значение в качестве ответа; в противном случае продолжить выполнение алгоритма.
2. Определить большее из чисел.
3. Заменить большее число разностью большего и меньшего значений.
4. Вернуться к выполнению пункта 1.
Блок-схема и алгоритм на АЯ будут следующими:
Алгоритм имеет структуру цикла с вложенным ветвлением. Проделайте самостоятельно трассировку этого алгоритма для случая М = 18, N = 12. В результате получится НОД = 6, что, очевидно, верно.