Сказки        16.04.2020   

Кто изобрел алгоритм нахождения наибольшего общего делителя. Нахождение нод по алгоритму евклида и с помощью разложения на простые множители. Алгоритм Евклида для нахождения НОД

  • Ознакомить с понятием «алгоритм Евклида».
  • Научить находить наиболее общие делители разными математическими способами.

Ход урока

Понятие Алгоритм Евклида

Является одним из древнейших математических , которой уже более 2000 лет.

Алгоритм Евклида придуман для нахождения наибольшего общего делителя пары целых чисел.

Наибольший общий делитель

Наибольший общий делитель (НОД) – это число, делящее без остатка два числа и делится само без остатка на любой другой делитель данных чисел.

Другими словами, это самое большое число, на которое можно без остатка разделить два числа, для которых ищется общий делитель.

Алгоритм нахождения НОД делением

Описание алгоритма нахождения наибольшего общего делителя делением

Большее число делится на меньшее

Если делится без остатка, то меньшее число и есть наибольший общий делитель. Теперь нужно выйти из цикла

Если есть остаток, то большее число заменяем на остаток от деления

Переход к пункту 1.

Пример:

Найти наибольший общий делитель для 300 и 180.

300/180 = 1 (остаток 120)

180/120 = 1 (остаток 60)

120/60 = 2 (остаток 0).

Конец: наибольший общий делитель – это 6.

В цикле «a» или «b» фиксируется остаток от деления. Когда остатка нет (мы не знаем в «а» он или «b,» поэтому проверяем оба условия ), то цикл завершается.

В конце выводится сумма «a» и «b», потому что мы не знаем, в какой переменной записан наибольший общий делитель, а в одной из них в любом случае 0, не влияющий на результат суммы.

Алгоритм нахождения НОД вычитанием

Описание алгоритма нахождения наибольшего общего делителя вычитанием

Из большего числа вычитается меньшее

Если получается 0, то числа равны друг другу и являются наибольшим общим делителем. Выход из цикла

Если результат вычитания не равен 0, то большее число заменяется на результат вычитания

Переход к пункту 1.

Пример: Найти для чисел 300 и 180.

Конец: Наиболее общий делитель чисел 300 и 180 – 60.

Как способ нахождения наибольшей общей меры двух отрезков (метод попеременного вычитания) был известен ещё пифагорейцам.

При нахождении наибольшей общей меры двух отрезков поступают такими же способами, что и выше.

Операция деления с остатком заменяется ее геометрическим аналогом: меньший отрезок откладывают на больший столько раз, сколько возможно, а оставшуюся часть большего отрезка (а это остаток деления) откладывают на меньшем отрезке.

Если отрезки a иb соизмерыми, то последний не нулевой остаток даст наибольшую общую меру отрезков.

В случае их несоизмеримости полученная последовательность не нулевых остатков будет бесконечной.

Пример:

В качестве отрезков возьмём сторону AB и AC равнобедренного треугольника ABC, у которого A=C = 72°, B= 36°.

В качестве первого остатка мы получим отрезок AD (CD-биссектриса угла C), и, как легко видеть, последовательность и нулевых остатков будет бесконечной.

Значит, отрезки AB и AC не соизмеримы.

Вопросы

1. Что представляет собой алгоритм Евклида?

2. Что такое наибольший общий делитель?

Список использованных источников

1. Урок на тему: «Алгоритм Эвклида», Корчевой П. И., г. Луцк

2. Щетников А. И. Алгоритм Евклида и непрерывные дроби. - Новосибирск: АНТ, 2003 г.

3. Коунтинхо С. Введение в теорию чисел. Алгоритм RSA, – М., 2001 г.

4. Кострикин А.И. Введение в алгебру, – М., 2000 г.


Отредактировано и выслано преподавателем Киевского национального университета им. Тараса Шевченко Соловьевым М. С.

Над уроком работали

Корчевой П. И.

Соловьев М. С.

Поставить вопрос о современном образовании, выразить идею или решить назревшую проблему Вы можете на Образовательном форуме


Эта статья про нахождение наибольшего общего делителя (НОД) двух и большего количества чисел. Сначала рассмотрим алгоритм Евклида, он позволяет находить НОД двух чисел. После этого остановимся на методе, позволяющем вычислять НОД чисел как произведение их общих простых множителей. Дальше разберемся с нахождением наибольшего общего делителя трех и большего количества чисел, а также приведем примеры вычисления НОД отрицательных чисел.

Навигация по странице.

Алгоритм Евклида для нахождения НОД

Заметим, что если бы мы с самого начала обратились к таблице простых чисел , то выяснили бы, что числа 661 и 113 – простые, откуда можно было бы сразу сказать, что их наибольший общий делитель равен 1 .

Ответ:

НОД(661, 113)=1 .

Нахождение НОД с помощью разложения чисел на простые множители

Рассмотрим еще один способ нахождения НОД. Наибольший общий делитель может быть найден по разложениям чисел на простые множители . Сформулируем правило: НОД двух целых положительных чисел a и b равен произведению всех общих простых множителей, находящихся в разложениях чисел a и b на простые множители .

Приведем пример для пояснения правила нахождения НОД. Пусть нам известны разложения чисел 220 и 600 на простые множители, они имеют вид 220=2·2·5·11 и 600=2·2·2·3·5·5 . Общими простыми множителями, участвующими в разложении чисел 220 и 600 , являются 2 , 2 и 5 . Следовательно, НОД(220, 600)=2·2·5=20 .

Таким образом, если разложить числа a и b на простые множители и найти произведение всех их общих множителей, то этим будет найден наибольший общий делитель чисел a и b .

Рассмотрим пример нахождения НОД по озвученному правилу.

Пример.

Найдите наибольший общий делитель чисел 72 и 96 .

Решение.

Разложим на простые множители числа 72 и 96 :

То есть, 72=2·2·2·3·3 и 96=2·2·2·2·2·3 . Общими простыми множителями являются 2 , 2 , 2 и 3 . Таким образом, НОД(72, 96)=2·2·2·3=24 .

Ответ:

НОД(72, 96)=24 .

В заключение этого пункта заметим, что справедливость приведенного правила нахождения НОД следует из свойства наибольшего общего делителя, которое утверждает, что НОД(m·a 1 , m·b 1)=m·НОД(a 1 , b 1) , где m – любое целое положительное число.

Нахождение НОД трех и большего количества чисел

Нахождение наибольшего общего делителя трех и большего количества чисел может быть сведено к последовательному нахождению НОД двух чисел. Мы об этом упоминали, при изучении свойств НОД. Там мы сформулировали и доказали теорему: наибольший общий делитель нескольких чисел a 1 , a 2 , …, a k равен числу d k , которое находится при последовательном вычислении НОД(a 1 , a 2)=d 2 , НОД(d 2 , a 3)=d 3 , НОД(d 3 , a 4)=d 4 , …, НОД(d k-1 , a k)=d k .

Давайте разберемся, как выглядит процесс нахождения НОД нескольких чисел, рассмотрев решение примера.

Пример.

Найдите наибольший общий делитель четырех чисел 78 , 294 , 570 и 36 .

Решение.

В этом примере a 1 =78 , a 2 =294 , a 3 =570 , a 4 =36 .

Сначала по алгоритму Евклида определим наибольший общий делитель d 2 двух первых чисел 78 и 294 . При делении получаем равенства 294=78·3+60 ; 78=60·1+18 ; 60=18·3+6 и 18=6·3 . Таким образом, d 2 =НОД(78, 294)=6 .

Теперь вычислим d 3 =НОД(d 2 , a 3)=НОД(6, 570) . Опять применим алгоритм Евклида: 570=6·95 , следовательно, d 3 =НОД(6, 570)=6 .

Осталось вычислить d 4 =НОД(d 3 , a 4)=НОД(6, 36) . Так как 36 делится на 6 , то d 4 =НОД(6, 36)=6 .

Таким образом, наибольший общий делитель четырех данных чисел равен d 4 =6 , то есть, НОД(78, 294, 570, 36)=6 .

Ответ:

НОД(78, 294, 570, 36)=6 .

Разложение чисел на простые множители также позволяет вычислять НОД трех и большего количества чисел. В этом случае наибольший общий делитель находится как произведение всех общих простых множителей данных чисел.

Пример.

Вычислите НОД чисел из предыдущего примера, используя их разложения на простые множители.

Решение.

Разложим числа 78 , 294 , 570 и 36 на простые множители, получаем 78=2·3·13 , 294=2·3·7·7 , 570=2·3·5·19 , 36=2·2·3·3 . Общими простыми множителями всех данных четырех чисел являются числа 2 и 3 . Следовательно, НОД(78, 294, 570, 36)=2·3=6 .

Наибольший общий делитель

Определение 2

Если натуральное число a делится на натуральное число $b$, то $b$ называют делителем числа $a$, а число $a$ называют кратным числа $b$.

Пусть $a$ и $b$-натуральные числа. Число $c$ называют общим делителем и для $a$ и для $b$.

Множество общих делителей чисел $a$ и $b$ конечно, так как ни один из этих делителей не может быть больше, чем $a$. Значит,среди этих делителей есть наибольший, который называют наибольшим общим делителем чисел $a$ и $b$ и для его обозначения используют записи:

$НОД \ (a;b) \ или \ D \ (a;b)$

Чтобы найти наибольший общий делитель двух, чисел необходимо:

  1. Найти произведение чисел, найденных на шаге 2. Полученное число и будет искомым наибольшим общим делителем.

Пример 1

Найти НОД чисел $121$ и $132.$

    $242=2\cdot 11\cdot 11$

    $132=2\cdot 2\cdot 3\cdot 11$

    Выбрать числа, которые входят в разложение этих чисел

    $242=2\cdot 11\cdot 11$

    $132=2\cdot 2\cdot 3\cdot 11$

    Найти произведение чисел, найденных на шаге 2.Полученное число и будет искомым наибольшим общим делителем.

    $НОД=2\cdot 11=22$

Пример 2

Найти НОД одночленов $63$ и $81$.

Будем находить согласно представленному алгоритму. Для этого:

    Разложим числа на простые множители

    $63=3\cdot 3\cdot 7$

    $81=3\cdot 3\cdot 3\cdot 3$

    Выбираем числа, которые входят в разложение этих чисел

    $63=3\cdot 3\cdot 7$

    $81=3\cdot 3\cdot 3\cdot 3$

    Найдем произведение чисел, найденных на шаге 2.Полученное число и будет искомым наибольшим общим делителем.

    $НОД=3\cdot 3=9$

Найти НОД двух чисел можно и по-другому, используя множество делителей чисел.

Пример 3

Найти НОД чисел $48$ и $60$.

Решение:

Найдем множество делителей числа $48$: $\left\{{\rm 1,2,3.4.6,8,12,16,24,48}\right\}$

Теперь найдем множество делителей числа $60$:$\ \left\{{\rm 1,2,3,4,5,6,10,12,15,20,30,60}\right\}$

Найдем пересечение этих множеств: $\left\{{\rm 1,2,3,4,6,12}\right\}$- данное множество будет определять множество общих делителей чисел $48$ и $60$. Наибольший элемент в данном множестве будет число $12$. Значит наибольший общий делитель чисел $48$ и $60$ будет $12$.

Определение НОК

Определение 3

Общим кратным натуральных чисел $a$ и $b$ называется натуральное число, которое кратно и $a$ и $b$.

Общими кратными чисел называются числа которые делятся на исходные без остатка.Например для чисел $25$ и $50$ общими кратными будут числа $50,100,150,200$ и т.д

Наименьшее из общих кратных будет называться наименьшим общим кратным и обозначается НОК$(a;b)$ или K$(a;b).$

Чтобы найти НОК двух чисел, необходимо:

  1. Разложить числа на простые множители
  2. Выписать множители, входящие в состав первого числа и добавить к ним множители, которые входят в состав второго и не ходят в состав первого

Пример 4

Найти НОК чисел $99$ и $77$.

Будем находить согласно представленному алгоритму. Для этого

    Разложить числа на простые множители

    $99=3\cdot 3\cdot 11$

    Выписать множители, входящие в состав первого

    добавить к ним множители, которые входят в состав второго и не ходят в состав первого

    Найти произведение чисел, найденных на шаге 2.Полученное число и будет искомым наименьшим общим кратным

    $НОК=3\cdot 3\cdot 11\cdot 7=693$

    Составление списков делителей чисел часто очень трудоемкое занятие. Существует способ нахождение НОД, называемый алгоритмом Евклида.

    Утверждения, на которых основан алгоритм Евклида:

    Если $a$ и $b$ --натуральные числа, причем $a\vdots b$, то $D(a;b)=b$

    Если $a$ и $b$ --натуральные числа, такие что $b

Пользуясь $D(a;b)= D(a-b;b)$, можно последовательно уменьшать рассматриваемые числа до тех пор, пока не дойдем до такой пары чисел, что одно из них делится на другое. Тогда меньшее из этих чисел и будет искомым наибольшим общим делителем для чисел $a$ и $b$.

Свойства НОД и НОК

  1. Любое общее кратное чисел $a$ и $b$ делится на K$(a;b)$
  2. Если $a\vdots b$ , то К$(a;b)=a$
  3. Если К$(a;b)=k$ и $m$-натуральное число, то К$(am;bm)=km$

    Если $d$-общий делитель для $a$ и $b$,то К($\frac{a}{d};\frac{b}{d}$)=$\ \frac{k}{d}$

    Если $a\vdots c$ и $b\vdots c$ ,то $\frac{ab}{c}$ - общее кратное чисел $a$ и $b$

    Для любых натуральных чисел $a$ и $b$ выполняется равенство

    $D(a;b)\cdot К(a;b)=ab$

    Любой общийй делитель чисел $a$ и $b$ является делителем числа $D(a;b)$

Алгоритм Евклида нахождения НОД (наибольшего общего делителя)

Даны два целых неотрицательных числа и . Требуется найти их наибольший общий делитель, т.е. наибольшее число, которое является делителем одновременно и , и . На английском языке "наибольший общий делитель" пишется "greatest common divisor", и распространённым его обозначением является :

(здесь символом "" обозначена делимость, т.е. "" обозначает " делит ")

Когда оно из чисел равно нулю, а другое отлично от нуля, их наибольшим общим делителем, согласно определению, будет это второе число. Когда оба числа равны нулю, результат не определён (подойдёт любое бесконечно большое число), мы положим в этом случае наибольший общий делитель равным нулю. Поэтому можно говорить о таком правиле: если одно из чисел равно нулю, то их наибольший общий делитель равен второму числу.

Алгоритм Евклида , рассмотренный ниже, решает задачу нахождения наибольшего общего делителя двух чисел и за .

Данный алгоритм был впервые описан в книге Евклида "Начала" (около 300 г. до н.э.), хотя, вполне возможно, этот алгоритм имеет более раннее происхождение.

Алгоритм

Сам алгоритм чрезвычайно прост и описывается следующей формулой:

Реализация

int gcd (int a, int b) { if (b == 0 ) return a; else return gcd (b, a % b) ; }

Используя тернарный условный оператор C++, алгоритм можно записать ещё короче:

int gcd (int a, int b) { return b ? gcd (b, a % b) : a; }

Наконец, приведём и нерекурсивную форму алгоритма:

int gcd (int a, int b) { while (b) { a % = b; swap (a, b) ; } return a; }

Доказательство корректности

Сначала заметим, что при каждой итерации алгоритма Евклида его второй аргумент строго убывает, следовательно, посколько он неотрицательный, то алгоритм Евклида всегда завершается .

Для доказательства корректности нам необходимо показать, что для любых >.

Покажем, что величина, стоящая в левой части равенства, делится на настоящую в правой, а стоящая в правой — делится на стоящую в левой. Очевидно, это будет означать, что левая и правая части совпадают, что и докажет корректность алгоритма Евклида.

Обозначим . Тогда, по определению, и .

Но тогда отсюда следует:

Итак, вспоминая утверждение , получаем систему:

Воспользуемся теперь следующим простым фактом: если для каких-то трёх чисел выполнено: и , то выполняется и: . В нашей ситуации получаем:

Или, подставляя вместо его определение как , получаем:

Итак, мы провели половину доказательства: показали, что левая часть делит правую. Вторая половина доказательства производится аналогично.

Время работы

Время работы алгоритма оценивается теоремой Ламе , которая устанавливает удивительную связь алгоритма Евклида и последовательности Фибоначчи:

Если > и для некоторого , то алгоритм Евклида выполнит не более рекурсивных вызовов.

Широко распространённого в электронной коммерции . Также алгоритм используется при решении линейных диофантовых уравнений , при построении непрерывных дробей , в методе Штурма . Алгоритм Евклида является основным инструментом для доказательства теорем в современной теории чисел , например таких как теорема Лагранжа о сумме четырёх квадратов и основная теорема арифметики .

Энциклопедичный YouTube

    1 / 5

    ✪ Математика. Натуральные числа: Алгоритм Евклида. Центр онлайн-обучения «Фоксфорд»

    ✪ Алгоритм Евклида

    ✪ Алгоритм Евклида, быстрый способ найти НОД

    ✪ Математика 71. Наибольший общий делитель. Алгоритм Евклида - Академия занимательных наук

    ✪ 20 Цикл while Алгоритм Евклида Python

    Субтитры

История

Древнегреческие математики называли этот алгоритм ἀνθυφαίρεσις или ἀνταναίρεσις - «взаимное вычитание». Этот алгоритм не был открыт Евклидом , так как упоминание о нём имеется уже в Топике Аристотеля . В «Началах» Евклида он описан дважды - в VII книге для нахождения наибольшего общего делителя двух натуральных чисел и в X книге для нахождения наибольшей общей меры двух однородных величин . В обоих случаях дано геометрическое описание алгоритма, для нахождения «общей меры» двух отрезков.

Описание

Алгоритм Евклида для целых чисел

Пусть a {\displaystyle a} и b {\displaystyle b} - целые числа, не равные одновременно нулю, и последовательность чисел

a > b > r 1 > r 2 > r 3 > r 4 > … > r n {\displaystyle a>b>r_{1}>r_{2}>r_{3}>r_{4}>\ \dots \ >r_{n}}

определена тем, что каждое r k {\displaystyle r_{k}} - это остаток от деления предпредыдущего числа на предыдущее, а предпоследнее делится на последнее нацело, то есть:

a = b q 0 + r 1 , {\displaystyle a=bq_{0}+r_{1},} b = r 1 q 1 + r 2 , {\displaystyle b=r_{1}q_{1}+r_{2},} r 1 = r 2 q 2 + r 3 , {\displaystyle r_{1}=r_{2}q_{2}+r_{3},} ⋯ {\displaystyle \cdots } r k − 2 = r k − 1 q k − 1 + r k , {\displaystyle r_{k-2}=r_{k-1}q_{k-1}+r_{k},} ⋯ {\displaystyle \cdots } r n − 2 = r n − 1 q n − 1 + r n , {\displaystyle r_{n-2}=r_{n-1}q_{n-1}+r_{n},} r n − 1 = r n q n . {\displaystyle r_{n-1}=r_{n}q_{n}.}

Тогда НОД(a , b ), наибольший общий делитель a и b , равен r n , последнему ненулевому члену этой последовательности .

Существование таких r 1 , r 2 , ..., r n , то есть возможность деления с остатком m на n для любого целого m и целого n ≠ 0, доказывается индукцией по m .

Корректность этого алгоритма вытекает из следующих двух утверждений :

  • Пусть a = b q + r , тогда НОД (a, b) = НОД (b, r).

Доказательство

  • НОД(r , 0) = r для любого ненулевого r (так как 0 делится на любое целое число, кроме нуля).

Геометрический алгоритм Евклида

Пусть даны два отрезка длины a и b . Вычтем из большего отрезка меньший и заменим больший отрезок полученной разностью. Повторяем эту операцию, пока отрезки не станут равны. Если это произойдёт, то исходные отрезки соизмеримы , и последний полученный отрезок есть их наибольшая общая мера. Если общей меры нет, то процесс бесконечен. В таком виде алгоритм описан Евклидом и реализуется с помощью циркуля и линейки.

Пример

Для иллюстрации алгоритм Евклида будет использован, чтобы найти НОД a = 1071 и b = 462. Для начала от 1071 отнимем кратное значение 462, пока не получим разность меньше, чем 462. Мы должны дважды отнять 462, (q 0 = 2), оставаясь с остатком 147:

1071 = 2 × 462 + 147.

Затем от 462 отнимем кратное значение 147, пока не получим разность меньше, чем 147. Мы должны трижды отнять 147 (q 1 = 3), оставаясь с остатком 21:

462 = 3 × 147 + 21.

Затем от 147 отнимем кратное значение 21, пока не получим разность меньше, чем 21. Мы должны семь раз отнять 21 (q 2 = 7), оставаясь без остатка:

147 = 7 × 21 + 0.

Таким образом последовательность a > b > r 1 > r 2 > r 3 > … > r n в данном конкретном случае будет выглядеть так:

1071 > 462 > 147 > 21.

Так как последний остаток равен нулю, алгоритм заканчивается числом 21 и НОД(1071, 462) = 21.

В табличной форме шаги были следующие:

Применения

Расширенный алгоритм Евклида и соотношение Безу

Формулы для r i {\displaystyle r_{i}} могут быть переписаны следующим образом:

r 1 = a + b (− q 0) {\displaystyle r_{1}=a+b(-q_{0})} r 2 = b − r 1 q 1 = a (− q 1) + b (1 + q 1 q 0) {\displaystyle r_{2}=b-r_{1}q_{1}=a(-q_{1})+b(1+q_{1}q_{0})} ⋮ {\displaystyle \vdots } НОД (a , b) = r n = a s + b t {\displaystyle (a,b)=r_{n}=as+bt}

Здесь s и t целые. Это представление наибольшего общего делителя называется соотношением Безу , а числа s и t - коэффициентами Безу . Соотношение Безу является ключевым в доказательстве леммы Евклида и основной теоремы арифметики .

Цепные дроби

Алгоритм Евклида достаточно тесно связан с цепными дробями . Отношение a /b допускает представление в виде цепной дроби:

a b = [ q 0 ; q 1 , q 2 , ⋯ , q n ] {\displaystyle {\frac {a}{b}}=} .

При этом цепная дробь без последнего члена равна отношению коэффициентов Безу t /s , взятому со знаком минус:

[ q 0 ; q 1 , q 2 , ⋯ , q n − 1 ] = − t s {\displaystyle =-{\frac {t}{s}}} .

Последовательность равенств, задающая алгоритм Евклида, может быть переписана в форме:

a b = q 0 + r 0 b b r 0 = q 1 + r 1 r 0 r 0 r 1 = q 2 + r 2 r 1 ⋮ r k − 2 r k − 1 = q k + r k r k − 1 ⋮ r N − 2 r N − 1 = q N {\displaystyle {\begin{aligned}{\frac {a}{b}}&=q_{0}+{\frac {r_{0}}{b}}\\{\frac {b}{r_{0}}}&=q_{1}+{\frac {r_{1}}{r_{0}}}\\{\frac {r_{0}}{r_{1}}}&=q_{2}+{\frac {r_{2}}{r_{1}}}\\&{}\ \vdots \\{\frac {r_{k-2}}{r_{k-1}}}&=q_{k}+{\frac {r_{k}}{r_{k-1}}}\\&{}\ \vdots \\{\frac {r_{N-2}}{r_{N-1}}}&=q_{N}\end{aligned}}}

Последнее слагаемое в правой части равенства всегда равно обратному значению левой части следующего уравнения. Поэтому первые два уравнения могут быть объединены в форме:

a b = q 0 + 1 q 1 + r 1 r 0 {\displaystyle {\frac {a}{b}}=q_{0}+{\cfrac {1}{q_{1}+{\cfrac {r_{1}}{r_{0}}}}}}

Третье равенство может быть использовано, чтобы заменить знаменатель выражения r 1 /r 0 , получим:

a b = q 0 + 1 q 1 + 1 q 2 + r 2 r 1 {\displaystyle {\frac {a}{b}}=q_{0}+{\cfrac {1}{q_{1}+{\cfrac {1}{q_{2}+{\cfrac {r_{2}}{r_{1}}}}}}}}

Последнее отношение остатков r k /r k −1 всегда может быть заменено с использованием следующего равенства в последовательности, и так до последнего уравнения. Результатом является цепная дробь:

a b = q 0 + 1 q 1 + 1 q 2 + 1 ⋱ + 1 q N = [ q 0 ; q 1 , q 2 , … , q N ] {\displaystyle {\frac {a}{b}}=q_{0}+{\cfrac {1}{q_{1}+{\cfrac {1}{q_{2}+{\cfrac {1}{\ddots +{\cfrac {1}{q_{N}}}}}}}}}=}

Обобщённый алгоритм Евклида для многочленов

Алгоритм Евклида и расширенный алгоритм Евклида естественным образом обобщается на кольцо многочленов k [x ] от одной переменной над произвольным полем k , поскольку для таких многочленов определена операция деления с остатком. При выполнении алгоритма Евклида для многочленов аналогично алгоритму Евклида для целых чисел получается последовательность полиномиальных остатков (PRS) .

Пример для кольца Z [x ]

Пусть cont(f) по определению - НОД коэффициентов многочлена f(x) из Z[x] - содержание многочлена. Частное от деления f(x) на cont(f) называется примитивной частью многочлена f(x) и обозначается primpart(f(x)). Эти определения понадобятся для нахождения НОД двух многочленов p 1 (x) и p 2 (x) в кольце Z[x]. Для многочленов над целыми числами верно следующее:

C o n t ({\displaystyle cont(} НОДНОД { c o n t (p 1 (x)) , c o n t (p 2 (x)) } , {\displaystyle \{cont(p_{1}(x)),cont(p_{2}(x))\},}

P r i m p a r t ({\displaystyle primpart(} НОД { p 1 (x) , p 2 (x) }) = {\displaystyle \{p_{1}(x),p_{2}(x)\})=} НОД { p r i m p a r t (p 1 (x)) , p r i m p a r t (p 2 (x)) } . {\displaystyle \{primpart(p_{1}(x)),primpart(p_{2}(x))\}.}

Таким образом, задача поиска НОД двух произвольных многочленов сводится к задаче поиска НОД примитивных полиномов.

Пусть есть два примитивных многочлена p 1 (x) и p 2 (x) из Z[x], для которых выполняется соотношение между их степенями: deg(p 1 (x)) = m и deg(p 2 (x)) = n, m > n. Деление многочленов с остатком предполагает точную делимость старшего коэффициента делимого на старший коэффициент делителя, в общем случае деление с остатком выполнить невозможно. Поэтому вводят алгоритм псевдоделения, который всё же позволяет получить псевдочастное и псевдоостаток (prem), которые будут сами по себе принадлежать множеству многочленов над целыми числами.

Под псевдоделением будем понимать, что самому делению предшествует умножение полинома p 1 (x) {\displaystyle p_{1}(x)} на (l c (p 2 (x))) m − n + 1 {\displaystyle (lc(p_{2}(x)))^{m-n+1}} , то есть

L c (p 2 (x)) m − n + 1 p 1 (x) = p 2 (x) q (x) + r 2 (x) , deg ⁡ (r (x)) < deg ⁡ (p 2 (x)) , {\displaystyle lc(p_{2}(x))^{m-n+1}p_{1}(x)=p_{2}(x)q(x)+r_{2}(x),\deg(r(x))<\deg(p_{2}(x)),}

где q (x) {\displaystyle q(x)} и r (x) {\displaystyle r(x)} - соответственно псевдочастное и псевдоостаток.

Итак, p 1 (x) , p 2 (x) ∈ Z [ x ] {\displaystyle p_{1}(x),p_{2}(x)\in Z[x]} , причём deg ⁡ (p 1) = n 1 ≥ deg ⁡ (p 2) = n 2 {\displaystyle \deg(p_{1})=n_{1}\geq \deg(p_{2})=n_{2}} . Тогда алгоритм Евклида состоит из следующих шагов:

1. Вычисление НОД содержаний:

C:= {\displaystyle c:=} НОД { c o n t (p 1) , c o n t (p 2) } {\displaystyle \{cont(p_{1}),cont(p_{2})\}} .

2. Вычисление примитивных частей:

P 1 ′ (x) := p r i m p a r t (p 1 (x)) ; {\displaystyle p_{1}"(x):=primpart(p_{1}(x));}

P 2 ′ (x) := p r i m p a r t (p 2 (x)) . {\displaystyle p_{2}"(x):=primpart(p_{2}(x)).}

3. Построение последовательности полиномиальных остатков:

P 1 ′ (x) , {\displaystyle p_{1}"(x),}

P 2 ′ (x) , {\displaystyle p_{2}"(x),}

P 3 (x) := p r e m (p 1 ′ (x) , p 2 ′ (x)) , {\displaystyle p_{3}(x):=prem(p_{1}"(x),p_{2}"(x)),}

P 4 (x) := p r e m (p 2 ′ (x) , p 3 (x)) , {\displaystyle p_{4}(x):=prem(p_{2}"(x),p_{3}(x)),}

P 5 (x) := p r e m (p 3 (x) , p 4 (x)) , {\displaystyle p_{5}(x):=prem(p_{3}(x),p_{4}(x)),}

. . . {\displaystyle ...}

P h (x) := p r e m (p h − 2 (x) , p h − 1 (x)) . {\displaystyle p_{h}(x):=prem(p_{h-2}(x),p_{h-1}(x)).}