Алгоритм евклида. Алгоритм евклида - нахождение наибольшего общего делителя Сообщение на тему алгоритм евклида




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

Определение 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)$

Наи-боль-ший об-щий де-ли-тель двух на-ту-раль-ных чи-сел $a$ и $b$ - $НОД(a, b)$ - есть наи-боль-шее чис-ло, на ко-то-рое чис-ла $a$ и $b$ де-лят-ся без остат-ка.

Для на-хож-де-ния $НОД(a, b)$ мож-но по-сту-пить сле-ду-ю-щим есте-ствен-ным об-ра-зом: раз-ло-жить оба чис-ла по сте-пе-ням про-стых чи-сел: $a = 2^{\alpha_1} \cdot 3^{\alpha_2} \cdot \ldots \cdot p^{\alpha_n}_n$ , $b = 2^{\beta_1} \cdot 3^{\beta_2} \cdot \ldots \cdot p^{\beta_n}_n$ , ($\alpha_k$ и $\beta_k$ мо-гут быть рав-ны ну-лю). То-гда $$НОД(a, b) = 2^{\min(\alpha_1, \beta_1)} \cdot 3^{\min(\alpha_2, \beta_2)} \cdot \ldots \cdot p^{\min(\alpha_n, \beta_n)}_n.$$ На-при-мер, для на-хож-де-ния наи-боль-ше-го об-ще-го де-ли-те-ля $2625$ и $8100$ по-лу-чим: $2625 = 2^0 \cdot 3^1 \cdot 5^3 \cdot 7^1, 8100 = 2^2 \cdot 3^4 \cdot 5^2 \cdot 7^0$, зна-чит $НОД(2625, 8100) = 2^0 \cdot 3^1 \cdot 5^2 \cdot 7^0 = 75$.

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

Ев-клид в 7 кни-ге «На-чал» опи-сы-ва-ет ал-го-ритм на-хож-де-ния «об-щей ме-ры двух чи-сел». Ал-го-ритм опи-сан гео-мет-ри-че-ски, как на-хож-де-ние об-щей ме-ры двух от-рез-ков. Он сво-дит-ся к «по-сле-до-ва-тель-но-му от-ня-тию» от боль-ше-го от-рез-ка мень-ше-го от-рез-ка. Те-перь этот ал-го-ритм из-ве-стен как ал-го-ритм Ев-кли-да для на-хож-де-ния наи-боль-ше-го об-ще-го де-ли-те-ля двух на-ту-раль-ных чи-сел.

Ос-нов-ная идея, на ко-то-рой ос-но-ван ал-го-ритм, со-сто-ит в том, что $НОД$ чи-сел $a$ и $b$ ра-вен $НОД$ чи-сел $b$ и $a-b$. От-сю-да сле-ду-ют, что ес-ли по-де-лить $a$ на $b$ с остат-ком, т.е. пред-ста-вить в ви-де $a = b \cdot q + r$, то $НОД(a, b) = НОД(b, r)$.

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

В пря-мо-уголь-ни-ке с дли-на-ми сто-рон $a$ и $b$ за-кра-ши-ва-ем мак-си-маль-но воз-мож-ный квад-рат. В остав-шем-ся пря-мо-уголь-ни-ке сно-ва за-кра-ши-ва-ем мак-си-маль-но воз-мож-ный квад-рат. И так да-лее до тех пор, по-ка весь ис-ход-ный пря-мо-уголь-ник не бу-дет за-кра-шен. Дли-на сто-ро-ны са-мо-го ма-лень-ко-го квад-ра-та и бу-дет рав-на $НОД(a, b)$.

Бо-лее по-дроб-но гео-мет-ри-че-ская ин-тер-пре-та-ция опи-са-на ни-же, а па-рал-лель-но при-ве-де-но ариф-ме-ти-че-ское опи-са-ние ал-го-рит-ма Ев-кли-да.

Ин-тер-пре-та-ция ал-го-рит-ма Ал-го-ритм Ев-кли-да
В пря-мо-уголь-ни-ке с дли-на-ми сто-рон $a$ и $b$ $(a \gt b)$ за-кра-ши-ва-ет-ся квад-рат мак-си-маль-но-го раз-ме-ра (со сто-ро-ной $b$). Эта опе-ра-ция по-вто-ря-ет-ся для не за-кра-шен-ной ча-сти сколь-ко воз-мож-но. Боль-шее чис-ло $a$ де-лит-ся с остат-ком на мень-шее чис-ло $b$: $a = b \cdot q_1 + r_1$.
Ес-ли та-кие квад-ра-ты за-мо-ща-ют весь пря-мо-уголь-ник, то чис-ло $b$ и есть $НОД$. Ес-ли оста-ток $r_1$ от де-ле-ния ра-вен ну-лю, то мень-шее чис-ло $b$ и есть $НОД$.
Ес-ли оста-ёт-ся пря-мо-уголь-ник (со сто-ро-на-ми $b$ и $r_1$), в нём за-кра-ши-ва-ет-ся наи-боль-шее воз-мож-ное чис-ло квад-ра-тов мак-си-маль-но-го раз-ме-ра (со сто-ро-ной $r_1$). Ес-ли оста-ток $r_1$ не ра-вен ну-лю, то мень-шее чис-ло $b$ де-лит-ся с остат-ком на $r_1$: $b = r_1 \cdot q_2 + r_2$.
Ес-ли квад-ра-ты со сто-ро-ной $r_1$ за-мо-ща-ют весь пря-мо-уголь-ник, то $r_1$ и есть $НОД$. Ес-ли в ре-зуль-та-те вто-ро-го де-ле-ния оста-ток $r_2$ ра-вен ну-лю, то $r_1$ и есть $НОД$.
Ес-ли оста-ёт-ся пря-мо-уголь-ник (со сто-ро-на-ми $r_1$ и $r_2$), в нём за-кра-ши-ва-ет-ся наи-боль-шее воз-мож-ное чис-ло квад-ра-тов мак-си-маль-но-го раз-ме-ра (со сто-ро-ной $r_2$). Ес-ли оста-ток $r_2$ при вто-ром де-ле-нии не ра-вен ну-лю, то $r_1$ де-лит-ся на $r_2$: $r_1 = r_2 \cdot q_3 + r_3$.
И так да-лее до тех пор, по-ка весь ис-ход-ный пря-мо-уголь-ник не по-кро-ет-ся квад-ра-та-ми. (Ра-но или позд-но это про-изой-дёт, по-сколь-ку сто-ро-ны квад-ра-тов умень-ша-ют-ся и в лю-бом слу-чае мож-но за-пол-нить остав-ший-ся пря-мо-уголь-ник квад-ра-та-ми со сто-ро-ной еди-ни-ца). И так да-лее до тех пор, по-ка не по-лу-чит-ся оста-ток $r_n$ рав-ный ну-лю (ра-но или позд-но это про-изой-дёт, по-сколь-ку остат-ки умень-ша-ют-ся).
Дли-на сто-ро-ны ми-ни-маль-но-го квад-ра-та и есть $НОД$ ис-ход-ных чи-сел. По-след-ний не рав-ный ну-лю оста-ток $r_{n-1}$ и есть $НОД$ ис-ход-ных чи-сел.

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

Ли-те-ра-ту-ра

Ев-клид. На-ча-ла Ев-кли-да. Кни-ги VII, X. - М.-Л.: ГИТТЛ, 1950.

Р. Ку-рант, Г. Ро-бинс. Что та-кое ма-те-ма-ти-ка? - М.: МЦНМО, 2010.

Алгоритм Евклида – это алгоритм нахождения наибольшего общего делителя (НОД) пары целых чисел.

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

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

  1. Большее число делим на меньшее.
  2. Если делится без остатка, то меньшее число и есть НОД (следует выйти из цикла).
  3. Если есть остаток, то большее число заменяем на остаток от деления.
  4. Переходим к пункту 1.

Пример:
Найти НОД для 30 и 18.
30 / 18 = 1 (остаток 12)
18 / 12 = 1 (остаток 6)
12 / 6 = 2 (остаток 0)
Конец: НОД – это делитель 6.
НОД (30, 18) = 6

a = 50 b = 130 while a != 0 and b != 0 : if a > b: a = a % b else : b = b % a print (a + b)

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

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

  1. Из большего числа вычитаем меньшее.
  2. Если получается 0, то значит, что числа равны друг другу и являются НОД (следует выйти из цикла).
  3. Если результат вычитания не равен 0, то большее число заменяем на результат вычитания.
  4. Переходим к пункту 1.

Пример:
Найти НОД для 30 и 18.
30 - 18 = 12
18 - 12 = 6
12 - 6 = 6
6 - 6 = 0
Конец: НОД – это уменьшаемое или вычитаемое.
НОД (30, 18) = 6

a = 50 b = 130 while a != b: if a > b: a = a - b else : b = b - a print (a)

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

Ход урока

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

Является одним из древнейших математических , которой уже более 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 г.


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

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

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

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

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

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

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

Рассмотрим следующую задачу: требуется составить программу определения наибольшего общего делителя (НОД) двух натуральных чисел.

Вспомним математику. Наибольший общий делитель двух натуральных чисел - это самое большое натуральное число, на которое они делятся нацело. Например, у чисел 12 и 18 имеются общие делители: 2, 3, 6. Наибольшим общим делителем является число 6. Это записывается так:

НОД(12, 18) = 6.

Обозначим исходные данные как М u N. Постановка задачи выглядит следующим образом:
Дано: М, N
Найти: НОД(М, N).

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

Идея алгоритма Евклида

Идея этого алгоритма основана на том свойстве, что если M>N, то

НОД(М, N) = НОД(М - N, N).

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

Легко доказать это свойство. Пусть К - общий делитель М u N (M> N). Это значит, что М = mК, N = nК, где m, n - натуральные числа, причем m > n. Тогда М - N = К(m - n), откуда следует, что К - делитель числа М - N. Значит, все общие делители чисел М и N являются делителями их разности М - N, в том числе и наибольший общий делитель.

Второе очевидное свойство:

НОД(М, М) = М.

Для "ручного" счета алгоритм Евклида выглядит так:

1) если числа равны, то взять любое из них в качестве ответа, в противном случае продолжить выполнение алгоритма;

2) заменить большее число разностью большего и меньшего из чисел;

3) вернуться к выполнению п. 1.

Рассмотрим этот алгоритм на примере М=32, N=24:

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

А теперь посмотрите на трассировочную таблицу алгоритма для исходных значений М = 32, N = 24.

Шаг Операция M N Условие
1 ввод М 32
2 ввод N 24
3 M ¹ N 32 ¹ 24, да
4 M>N 32>24, да
5 M:=M-N 8
6 M ¹ N 8 ¹ 24, да
7 M>N 8>24, нет
8 N:=N-M 16
9 M ¹ N 8 ¹ 16, да
10 M>N 8>16, нет
11 N:=N-M 8
12 M ¹ N 8 ¹ 8, нет
13 вывод M 8
14 конец

В итоге получился верный результат.

Программа на АЯ и на Паскале

Запишем алгоритм на АЯ и программу на Паскале.

Вопросы и задания

1. Выполните на компьютере программу Evklid. Протестируйте ее на значениях М= 32, N = 24; М = 696, N = 234.

2. Составьте программу нахождения наибольшего общего делителя трех чисел, используя следующую формулу:

НОД(А, B, С) = НОД(НОД(А, В), С).

3. Составьте программу нахождения наименьшего общего кратного (НОК) двух чисел, используя формулу:

А × В = НОД(А, В) × НОК(А, В).