Наибольший общий делитель (НОД) чисел a и b — это наибольшее число, на которое делятся без остатка числа a и b.
Среди всех способов нахождения наибольшего общего делителя для двух чисел алгоритм Евклида наиболее удобный и простой.
Нахождения НОД и НОК по алгоритму Евклида методом деления
Как известно, деление с остатком целых чисел a — делимое и b — делитель, где b ≠ 0, подразумевает нахождение таких целых чисел q и r, что выполняется равенство:
a = b ∙ q + r, где
q — называется неполным частным,
r — остаток от деления, который не может быть отрицательным числом и по модулю не может быть больше делителя.
Суть метода состоит в том, что сначала выбираем наибольшее из двух чисел, для которых требуется найти НОД и делим большее число на меньшее. Если остаток от деления не равен нулю, делим делитель на остаток от деления, так продолжаем до тех пор, пока остаток от деления не будет равен нулю.
Пример 1
Найдем НОД (36; 30), для этого сначала найдем остаток от деления 36 на 30
36 : 30 = 1 (остаток 6), так как 36 = 30 ∙ 1 + 6, остаток от деления не равен нулю, поэтому продолжаем деление, разделим 30 на 6
30 : 6 = 5 (остаток 0) так как 30 = 6 ∙ 5 + 0, остаток от деления равен нулю, значит НОД равен предыдущему остатку от деление 6
Ответ: НОД (36; 30) = 6
Чтобы найти наименьшее общее кратное НОК чисел a и b необходимо произведение a и b разделить на НОД (a; b)
НОК (36; 30) = (36 ∙ 30) : 6 = 180
Пример 2
Найдем НОД (176; 36), для этого сначала найдем остаток от деления 176 на 36
176 : 36 = 4 (остаток 32) так как 176 = 36 ∙ 4 + 32, остаток от деления не равен нулю, поэтому продолжаем деление, разделим 36 на 32
36 : 32 = 1 (остаток 4) так как 36 = 32 ∙ 1 + 4, остаток от деления не равен нулю, поэтому продолжаем деление, разделим 32 на 4
32 : 4 = 8 (остаток 0) так как 32 = 4 ∙ 8 + 0, остаток от деления равен нулю, значит НОД равен предыдущему остатку от деление 4
Ответ: НОД (176; 36) = 4
Чтобы найти наименьшее общее кратное НОК чисел a и b необходимо произведение a и b разделить на НОД (a; b)
НОК (176; 36) = (176 ∙ 36) : 4 = 1584
Нахождения НОД и НОК по алгоритму Евклида методом вычитания
Суть метода вычитания состоит в том, что необходимо из большего числа вычитать меньшее, если результат вычитания не равен нулю,
тогда уменьшаемое заменяем на получившуюся разность, если разность равна нулю, то НОД равен предыдущему значению разности.
Приведем примеры:
Пример 1
Найдем НОД (36; 30)
36 — 30 = 6
30 — 6 = 24
24 — 6 = 18
18 — 6 = 12
12 — 6 = 6
6 — 6 = 0
Ответ: НОД (36; 30) = 6
Чтобы найти наименьшее общее кратное НОК чисел a и b необходимо произведение a и b разделить на НОД (a; b)
НОК (36; 30) = (36 ∙ 30) : 6 = 180
Пример 2
Найдем НОД (176; 36)
176 — 36 = 140
140 — 36 = 104
104 — 36 = 68
68 — 36 = 32
36 — 32 = 4
32 — 4 = 28
28 — 4 = 24
24 — 4 = 20
20 — 4 = 16
16 — 4 = 12
12 — 4 = 8
8 — 4 = 4
4 — 4 = 0
Ответ: НОД (176; 36) = 4
Чтобы найти наименьшее общее кратное НОК чисел a и b необходимо произведение a и b разделить на НОД (a; b)
НОК (176; 36) = (176 ∙ 36) : 4 = 1584
Эксперт по предмету «Математика»
Задать вопрос автору статьи
Наибольший общий делитель
Определение 2
Если натуральное число a делится на натуральное число $b$, то $b$ называют делителем числа $a$, а число $a$ называют кратным числа $b$.
Пусть $a$ и $b$-натуральные числа. Число $c$ называют общим делителем и для $a$ и для $b$.
Множество общих делителей чисел $a$ и $b$ конечно, так как ни один из этих делителей не может быть больше, чем $a$. Значит ,среди этих делителей есть наибольший, который называют наибольшим общим делителем чисел $a$ и $b$ и для его обозначения используют записи :
$НОД (a;b) или D (a;b)$
Чтобы найти наибольший общий делитель двух, чисел необходимо:
- разложить числа на простые множители
- Выбрать числа, которые входят в разложение этих чисел
- Найти произведение чисел , найденных на шаге 2. Полученное число и будет искомым наибольшим общим делителем.
Пример 1
Найти НОД чисел $121$ и $132.$
Будем находить согласно представленному алгоритму. Для этого
-
разложить числа на простые множители
$242=2cdot 11cdot 11$
$132=2cdot 2cdot 3cdot 11$
-
Выбрать числа, которые входят в разложение этих чисел
$242=2cdot 11cdot 11$
$132=2cdot 2cdot 3cdot 11$
-
Найти произведение чисел , найденных на шаге 2.Полученное число и будет искомым наибольшим общим делителем.
$НОД=2cdot 11=22$
Пример 2
Найти НОД одночленов $63$ и $81$.
Будем находить согласно представленному алгоритму. Для этого:
-
Разложим числа на простые множители
$63=3cdot 3cdot 7$
$81=3cdot 3cdot 3cdot 3$
-
Выбираем числа, которые входят в разложение этих чисел
$63=3cdot 3cdot 7$
$81=3cdot 3cdot 3cdot 3$
-
Найдем произведение чисел , найденных на шаге 2.Полученное число и будет искомым наибольшим общим делителем.
$НОД=3cdot 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$.
$D(48;60)=12$
Определение НОК
Определение 3
Общим кратным натуральных чисел $a$ и $b$ называется натуральное число, которое кратно и $a$ и $b$.
Общими кратными чисел называются числа которые делятся на исходные без остатка.Например для чисел $25$ и $50$ общими кратными будут числа $50,100,150,200$ и т.д
Наименьшее из общих кратных будет называться наименьшим общим кратным и обозначается НОК$(a;b)$ или K$(a;b).$
Чтобы найти НОК двух чисел, необходимо:
- Разложить числа на простые множители
- Выписать множители, входящие в состав первого числа и добавить к ним множители, которые входят в состав второго и не ходят в состав первого
- Найти произведение чисел , найденных на шаге 2.Полученное число и будет искомым наименьшим общим кратным
Пример 4
Найти НОК чисел $99$ и $77$.
Будем находить согласно представленному алгоритму. Для этого
-
Разложить числа на простые множители
$99=3cdot 3cdot 11$
$77=7cdot 11$
-
Выписать множители, входящие в состав первого
$3,3,11$
добавить к ним множители, которые входят в состав второго и не ходят в состав первого
$7$
-
Найти произведение чисел , найденных на шаге 2.Полученное число и будет искомым наименьшим общим кратным
$НОК=3cdot 3cdot 11cdot 7=693$
Составление списков делителей чисел часто очень трудоемкое занятие. Существует способ нахождение НОД, называемый алгоритмом Евклида.
Утверждения, на которых основан алгоритм Евклида:
-
Если $a$ и $b$ —натуральные числа, причем $avdots b$, то $D(a;b)=b$
-
Если $a$ и $b$ —натуральные числа, такие что $b
Пользуясь $D(a;b)= D(a-b;b)$, можно последовательно уменьшать рассматриваемые числа до тех пор, пока не дойдем до такой пары чисел, что одно из них делится на другое. Тогда меньшее из этих чисел и будет искомым наибольшим общим делителем для чисел $a$ и $b$.
Свойства НОД и НОК
- Любое общее кратное чисел $a$ и $b$ делится на K$(a;b)$
- Если $avdots b$ , то К$(a;b)=a$
-
Если К$(a;b)=k$ и $m$-натуральное число, то К$(am;bm)=km$
Если $d$-общий делитель для $a$ и $b$,то К($frac{a}{d};frac{b}{d}$)=$ frac{k}{d}$
-
Если $avdots c$ и $bvdots c$ ,то $frac{ab}{c}$ — общее кратное чисел $a$ и $b$
-
Для любых натуральных чисел $a$ и $b$ выполняется равенство
$D(a;b)cdot К(a;b)=ab$
-
Любой общийй делитель чисел $a$ и $b$ является делителем числа $D(a;b)$
Находи статьи и создавай свой список литературы по ГОСТу
Поиск по теме
Материалы этой главы ещё в разработке.
Подпишитесь на обновления, и мы сообщим, когда они будут доступны, — или расскажем о других новостях.
Наибольший общий делитель
Как несложно догадаться, наибольший общий делитель (англ. greatest
common divisor) двух целых чисел — наибольшее число, на которое делится
каждое из них. Например:
[gcd(15, 20) = 5]
[gcd(12, 30) = 6]
Сразу заметим важное свойство:
[gcd(a, b) = gcd(b, a)]
НОД играет большую роль как в математике, так и в программировании, и часто
встречается в задачах на различные темы.
Алгоритм Евклида
Алгоритм Евклида — один из первых алгоритмов в истории, использовался
ещё в Древней Греции, и дошёл до наших дней. В изначальном виде он назывался
“взаимным вычитанием”, так как заключался в поочерёдном вычитании меньшего
числа из большего, пока одно из них не станет равным 0. Сегодня чаще всего
вместо вычитания используется взятие остатка от деления, но суть алгоритма
сохранилась.
Алгоритм заключается в построении ряда чисел следующего вида ((a > b)):
[a, b, r_1, r_2, ldots, r_n]
Где каждое последующее число является остатком от деления предпредыдущего
на предыдущее:
[r_1 = a bmod b \
r_2 = b bmod r_1 \
ldots \
r_n = r_{n — 2} bmod r_{n — 1}]
Ряд заканчивается, когда остаток от деления предпоследнего числа на
последнее становится равным 0:
[r_{n — 1} bmod r_n = 0]
В таком случае утверждается, что:
[gcd(a, b) = r_n]
Для доказательства этого утверждения сначала докажем следующее:
наборы общих делителей пары ((a, b)) и пары ((b, r_1)) полностью совпадают.
Рассмотрим произвольный (не обязательно наибольший) общий делитель (a) и (b):
(t) — общий делитель (a) и (b).
(r_1 = a bmod b), или (a = bq + r_1).
Докажем, что (t) также является общим делителем (b) и (r_1).
(b) делится на (t) по определению.
(r_1 = a — bq = t * ({a over t} — {b over t} * q)), где ({a over t}) и ({b over t}) целые по определению.
Значит, (r_1) также делится на (t), что и требовалось доказать.
Из того, что все общие делители пар ((a, b)) и ((b, r_1)) совпадают,
в частности следует, что (gcd(a, b) = gcd(b, r_1)).
Далее по индукции можно доказать следующее:
[gcd(a, b) = gcd(b, r_1) = gcd(r_1, r_2) = ldots = gcd(r_{n — 1}, r_n) = gcd(r_n, 0)]
(Нуль в последнем выражении появился из условия (r_{n — 1} bmod r_n = 0)).
Нуль делится на все числа, отличные от нуля, поэтому справедливо следующее
свойство:
[gcd(x, 0) = x, для любого x in mathbb{N}.]
Следовательно,
[gcd(a, b) = r_n,]
что и требовалось доказать.
Варианты реализации алгоритма Евклида на C++
Существует несколько вариантов реализации алгоритма Евклида, как итеративных
так и рекурсивных. Классическая итеративная реализация (работающая быстрее всех
рекурсивных) выглядит так:
1 2 3 4 5 6 7 8 9 10 11 12 int gcd(int a, int b) { if (a < b) { swap(a, b); } while (b) { a %= b; swap(a, b); } return a; }Рекурсивно это же можно реализовать так:
1 2 3 4 5 6 7 8 9 10 11 int gcd(int a, int b) { if (a < b) { swap(a, b); } if (b) { return gcd(b, a % b); } else { return a; } }Преимущество рекурсивной реализации заключается в возможности записать её в
очень кратком виде (предполагающим, что (a > b)):
1 2 3 int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }На практике разница во времени работы итеративного и рекурсивного вариантов
не столь значительна, так что вы можете использовать любой из них.Время работы алгоритма Евклида
Согласно некоторым исследованиям, время работы алгоритма Евклида тесно
связано с числами Фибоначчи. Это выражается, в частности, в том, что два
последовательных числа Фибоначчи — наихудшие входные данные для алгоритма
Евклида. При (a = F_n, b = F_{n — 1}), алгоритм Евклида совершит ровно
(n — 2) итерации. Отсюда можно выразить асимптотическую сложность алгоритма:
последовательность Фибоначчи возрастает с экспоненциальной скоростью, поэтому
алгоритм Евклида работает за (O(log min(a, b))).Наименьшее общее кратное
С понятием НОД связано также понятия наименьшего общего кратного (англ.
least common multiple). Наименьшее общее кратное двух натуральных чисел —
наименьшее натуральное число, которое делится на каждое из них. Оно обозначается
следующим образом:[lcm(a, b)]
и связано с НОД формулой:
[lcm(a, b) = {a * b over gcd(a, b)}]
Реализация на C++:
1 2 3 4 5 int lcm(int a, int b) { return a / gcd(a, b) * b; //используя форму a * b / gcd(a, b), //можно получить переполнение на этапе a * b, //поэтому следует выполнять деление до умножения }Взаимнопростые числа
Числа (a) и (b) называются взаимнопростыми тогда и только тогда, когда они
не имеют общих делителей отличных от (1). То есть в их отношении должно
выполняться условие (gcd(a, b) = 1).НОД и НОК для произвольного количества чисел
Обе функции легко обобщаются для произвольного числа аргументов
последовательным применением:[gcd(a, b, c, d) = gcd(gcd(gcd(a, b), c), d)]
[lcm(a, b, c, d) = lcm(lcm(lcm(a, b), c), d)]
Нахождение НОК и НОД двух натуральных чисел
Содержание:
- Что такое НОК и НОД двух натуральных чисел
- Особенности вычисления, алгоритм Евклида
- Правило нахождения наибольшего общего делителя (НОД)
- Правило нахождения наименьшего общего кратного (НОК)
Что такое НОК и НОД двух натуральных чисел
Натуральными числами называют числа, которые используются при счете – 1, 2, 3, 16, 25, 101, 2560 и далее до бесконечности. Ноль, отрицательные и дробные или нецелые числа не относятся к натуральным.
Наименьшее общее кратное (НОК) двух натуральных чисел a и b – это наименьшее число, которое делится без остатка на каждое из рассматриваемых чисел.
Наибольший общий делитель (НОД) двух натуральных чисел a и b – это наибольшее число, на которое делится без остатка каждое рассматриваемое число.
Осторожно! Если преподаватель обнаружит плагиат в работе, не избежать крупных проблем (вплоть до отчисления). Если нет возможности написать самому, закажите тут.
Свойства НОК и НОД для натуральных чисел a и b
- (НОД (a, b) = НОД (b, a);)
- (НОК (a, b) = НОК (b, a);)
- (НОК;(a,b)=frac{a;times;b}{НОД;(a,b)}.)
Особенности вычисления, алгоритм Евклида
Рассмотрим два способа определения НОД и НОК с помощью алгоритма Евклида:
- Способ деления.
При делении целых чисел с остатком, где a — делимое, b – делитель (b не равно 0) находят целые числа q и r согласно равенству (a=btimes) q+r, в котором q – неполное частное, r – остаток при делении (не отрицательное, по модулю меньше делителя).
Чтобы вычислить НОД, первоначально нужно выбрать наибольшее из двух чисел и поделить его на меньшее. Пока остаток не станет равным нулю, повторяется цикл деления делителя на остаток от деления в соответствии с формулой.
Пример №1
Вычислим НОД для чисел 12 и 20. Делим 20 на 12 и получаем 1 и 8 в остатке. Запишем иначе:
(20=12times1+8), так как остаток не равняется нулю, продолжаем деление. Делим 12 на 8 и получаем 1 и 4 в остатке. Записываем: (12=8times1+4) и по аналогии делим 8 на 4 и получаем 2 и 0 в остатке. НОД равен остатку, предшествующему нулю.
НОД (12;20) = 4
НОК получаем согласно свойству (НОК (a, b) = НОК;(a,b)=frac{a;times;b}{НОД;(a,b)}.) Подставляем числовые значения:
НОК (12; 20) = (12times20div4=60)
НОК (12;20) = 60
- Способ вычитания.
Здесь повторяется цикл вычитания из наибольшего числа меньшего числа до момента, пока разность не станет равна нулю. НОД равен предшествующей нулю разности.
Пример №2
Вычислим НОД для тех же чисел, 12 и 20.
20 – 12 = 8 (разность не равна нулю, продолжаем)
12 – 8 = 4
8 – 4 = 4
4 – 4 = 0
НОД (12;20) = 4
НОК находим также, как и при методе деления.
Правило нахождения наибольшего общего делителя (НОД)
Для нахождения наибольшего общего делителя воспользуемся пошаговым алгоритмом:
- Разложить числа на простые множители.
- Найти общий множитель одного и другого числа.
- Перемножить общие множители, если их несколько, и их произведение будет НОД.
Пример №3
Возьмем натуральные числа 24 и 36.
(24=2times2times2times3)
(36=2times2times3times3)
Правильно записать следующим образом:
(НОД (24;36)=2times3=6)
Примечание
В случае, когда одно или оба числа относятся к простым, т.е. делятся только на единицу и на само себя, то их НОД равняется 1.
Правило нахождения наименьшего общего кратного (НОК)
Для нахождения наименьшего общего кратного воспользуемся подробным алгоритмом:
- Наибольшее из чисел, а затем остальные разложить на простые множители.
- Выделить те множители, которые отсутствуют у наибольшего.
- Перемножить множители п. 2 и множители наибольшего числа, получить НОК.
Пример №4
Возьмем натуральные числа 9 и 12.
(12=2times2times3)
(9=3times3) (видим, что у числа 12 отсутствует одна тройка)
Правильно записать следующим образом:
(НОК (9;12)=2times2times3times3=36)
Насколько полезной была для вас статья?
Рейтинг: 3.00 (Голосов: 4)
Выделите текст и нажмите одновременно клавиши «Ctrl» и «Enter»
Текст с ошибкой:
Расскажите, что не так
