Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2 Лаб.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
630.38 Кб
Скачать

Найбільший спільний дільник.

Алгоритм Евкліда обчислює найбільший спільний дільник (НСД) двох натуральних чисел a та b. Найбільший спільний дільник g — це найбільше натуральне число яке ділить як a так і b без залишку. Найбільший спільний дільник також записують як НСД(ab).

Якщо НСД(ab) = 1, тоді a та b називають взаємно простими. Ця властивість не залежить від того, чи прості числа a та b. Наприклад, ні 6 ні 35 не прості, оскільки їх можна розкласти на добутки 6 = 2 × 3 та 35 = 5 × 7. Однак, 6 та 35 взаємно прості. Жодне натуральне число окрім 1 не ділить водночас 6 та 35, оскільки у них нема спільних дільників.

Нехай g = НСД(ab). Оскільки a та b є добутками g, їх можна записати, як a = mg та b = ng, і не існує більшого числа G > g з такою ж властивістю. Натуральні числа m та n мають бути взаємно простими, оскільки інший спільний дільник може бути виділений з m та n, що збільшить g. Таким чином, будь-яке число c, що ділить a та b має ділити і g. Найбільший спільний дільник g чисел a та b може бути визначений, як спільний дільник, який можна поділити іншим спільним дільником c.

Поняття НСД можна проілюструвати наступним чином. Розглянемо прямокутник зі сторонами a та b, та будь-який спільний дільник c, що ділить і a, і b без залишку. Ребра прямокутника можна поділити на відрізки довжиною c, які поділять прямокутник на сітку квадратів зі стороною c. Найбільший спільний дільник g дорівнює найбільшому можливому значенню c. Наприклад, прямокутник 24 на 60 може бути покрита сіткою квадратів зі стороною 1, 2, 3, 6 або 12. Таким чином, 12 є найбільшим спільним дільником 24 та 60. Прямокутник 24 на 60 можна поділити сіткою квадратами з ребром 12, два квадрати вздовж одного ребра (24/12 = 2), та п'ятеро (60/12 = 5) вздовж іншого.

Найбільший спільний дільник a та b можна визначити як добуток спільних дільників обох чисел. Наприклад, оскільки 462 можна розкласти на добуток 2 × 3 × 7 × 11 а 1071 можна розкласти на добуток 3 × 3 × 7 × 17, найбільший спільний дільник 462 та 1071 дорівнює 21 = 3 × 7, добутку їхніх спільних дільників. Якщо два числа не мають спільних дільників, їх найбільший спільних дільник 1 і вони взаємно прості. Ключовою перевагою алгоритма Евкліда є ефективне знаходження НСД без необхідності обчислення дільників. Розклад великих цілих чисел на дільники є криптографічно складною задачею, яка лежить в основі багатьох сучасних криптографічних систем.

НСД трьох або більшої кількості чисел дорівнює добутку дільників спільних для трьох чисел, який можна обчислити на основі НСД пар чисел. Наприклад,

НСД(abc) = НСД(a, НСД(bc)) = НСД(НСД(ab), c) = НСД(НСД(ac), b).

Тобто, алгоритм Евкліда обчислення найбільшого спільного дільника двох цілих підходить і для обчислення НСД довільної кількості цілих.

Алгоритм

a = q0b + r0 (0)

b = q1r0 + r1 (1)

r0 = q2r1 + r2 (2)

r1 = q3r2 + r3 (3)

. . .

rn - 3 = qn-1rn-2 + rn-1 (n-1)

rn - 2 = qnrn-1 + 0 (0)

Алгоритм Евкліда ітеративний, тобто, пошук розв'язку відбувається за декілька кроків. Для того щоб знайти НСД(ab) на 0-му кроці знаходять остачу r0 від ділення a на b. На 1-му кроці знаходять остачу від ділення b на r0. Оскільки залишки зменшуються на кожному кроці але не можуть бути від'ємними, то цю операцію виконують n кроків до тих пір поки не отримують остачу 0. Найбільшим спільним дільником є остання не нульова остача rn−1. Кількість кроків в алгоритмі має бути скінченною, оскільки існує лише скінченна кількість цілих чисел між початковим залишком r0 та нулем.

Приклад №1

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]