Идея вычисления наибольшего общего делителя в том, что некоторые числа заменяем их линейными комбинациями таким образом, что числа уменьшаются, а наибольший общий делитель остаётся прежним.
Приведём более строгое описание работы алгоритма.
Теорема
Множество общих делителей не меняется при элементарных преобразованиях набора (a1, … an), то есть при замене ai числом ai - q× ak.
В самом деле, если некоторое число d было общим делителем набора (a1, … an), то все линейные комбинации этих чисел, в том числе ai - q× ak, делятся на d.
Аналогично, если число d1 является общим делителем для набора, в котором провели замену, то оно является делителем q× ak, а, следовательно, является делителем ai. Следовательно, является делителем исходного набора.
В конце концов остаток при делении окажется равен нулю, поскольку остатки уменьшаются с каждым шагом, и все они положительные.
rk-1 = rkqk+1 + rk+1
rk = rk+1qk+2
Тогда НОД (a, b) = rk+1 (то есть наибольший общий делитель равен последнему ненулевому остатку).
Алгоритм Евклида относится к так называемым «быстрым» алгоритмам, поскольку на каждом шаге остаток уменьшается по крайней мере в 2 раза, поэтому за сравнительно небольшое количество шагов алгоритм заканчивает работу.
Для трёх чисел вычисление наибольшего общего делителя может быть, например, таким.