Делимость

Возьмём два целых числа a,bZa, b \in \ZZ. Говорят, что число aa делит число bb, если существует такое число cZc \in \ZZ, что b=acb = a \cdot c. Записывается как a\ba \divides b.

a\b   ⁣def   ⁣cZb=aca \divides b \defequiv \exists\, c \in \ZZ \? b = a \cdot c

Такое отношение можно ввести для любых колец, но этим мы займёмся сильно позже. Пока смотрим только на Z\ZZ.

Об обозначении знака деления

В математической литературе используют знак aba \mid b вместо a\ba \divides b, когда пишут, что aa делит bb. Я буду использовать обозначение \\divides вместо стандартного \mid.

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

{ggagb}\{ g \mid g \mid a\land g \mid b \}

Здесь целых три вертикальных черты, которые создают слишком много шума.

Во-вторых, с вертикальными чертами выходит явный перебор. Они используются в обозначениях модуля, определителя, норм, условных вероятностей и статистик, порядков групп, сужения функций, для указания свойств объектов и конкатенации строк. А с обратным слешем наоборот, явный недобор. Использется он только для указания разности множеств, но в случае со множествами, смысл знака понятен из контекста.

В-третьих, наклон черты влево создаёт естественную ассоциацию с операцией деления: запись a\ba \divides b визуально напоминает, что b/ab/a должно быть целым.

Этот выбор не является нововведением — он следует обозначениям, принятым в авторитетной работе «Конкретная математика» за авторством Рональда Грэхема, Дональда Кнута и Орена Паташника. В своей работе авторы сознательно отказались от перегруженной вертикальной черты в пользу более ясного символа, а мне эта идея очень сильно понравилась.

НОК и НОД

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

Пусть есть два числа a,bZa, b \in \ZZ. Можно посмотреть на множество их общих делителей

{gZ:g\ag\b}\{ g \in \ZZ : g \divides a \land g \divides b \}

Если хотя бы одно из чисел aa и bb не равно 00, то в этом множестве есть максимальный элемент, который является наибольшим общим делителем чисел aa и bb.

gcd(a,b)   ⁣=def   ⁣max {g:g\ag\b}\gcd(a, b) \defeq \max\limits~ \{ g : g \divides a \land g \divides b \}

По определению считаем, что gcd(0,0)   ⁣=def   ⁣0\gcd(0, 0) \defeq 0.

Аналогично общим делителям, можно рассмотреть общие кратные двух чисел a,bZa, b \in \ZZ. Это такие числа mm, которые делятся и на aa, и на bb.

{mZ:a\mb\m}\{ m \in \ZZ : a \divides m \land b \divides m \}

Среди всех положительных общих кратных существует наименьшее. Это число называется наименьшим общим кратным чисел aa и bb и обозначается lcm(a,b)\lcm(a, b).

lcm(a,b)   ⁣=def   ⁣min {m:a\mb\m}\lcm(a, b) \defeq \min\limits~ \{ m : a \divides m \land b \divides m \}

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

Наибольший общий делитель и наименьшее общее кратное — операции симметричные и инвариантные относительно знака, то есть

gcd(a,b)=gcd(b,a)=gcd(a,b)\gcd(a, b) = \gcd(b, a) = \gcd(|a|, |b|)
lcm(a,b)=lcm(b,a)=lcm(a,b)\lcm(a, b) = \lcm(b, a) = \lcm(|a|, |b|)

Связь наибольшего общего делителя и наименьшего общего кратного

Для любых ненулевых целых a,ba, b

gcd(a,b)lcm(a,b)=ab\gcd(a, b) \cdot \lcm(a, b) = |a \cdot b|

Пусть d=gcd(a,b)d = \gcd(a, b). Тогда a=daa = d \, a', b=dbb = d \, b', где gcd(a,b)=1\gcd(a', b') = 1. Для доказательства теоремы достаточно показать, что lcm(a,b)=dab\lcm(a, b) = d \, a' \, b'. С одной стороны, dabd \, a' \, b' кратно обоим числам. С другой, любое общее кратное mm должно делиться на dabd \, a' \, b', поскольку aa' и bb' взаимно просты.

Таким образом, lcm(a,b)=dab=ab/d=ab/gcd(a,b)\lcm(a, b) = d \, a' \, b' = ab / d = |ab| / \gcd(a, b).

Наибольший общий делитель и наименьшее общее кратное можно рассматривать не только для двух чисел, но и для любого количества чисел, ведь обе операции ассоциативные

gcd(a,gcd(b,c))=gcd(gcd(a,b),c)\gcd \bigl( a, \gcd(b, c) \bigr) = \gcd \bigl( \gcd(a, b), c \bigr)
lcm(a,lcm(b,c))=lcm(lcm(a,b),c)\lcm \bigl( a, \lcm(b, c) \bigr) = \lcm \bigl( \lcm(a, b), c \bigr)

Тогда можно определить наибольший общий делитель и наименьшее общее кратное нескольких чисел

gcd(a1,a2,,an)   ⁣=def   ⁣max {g:g\a1g\a2g\an}=gcd(a1,gcd(a2,gcd(,gcd(an1,an))\gcd (a_1, a_2, \dotsc, a_n) \defeq \max\limits~ \{ g : g \divides a_1 \land g \divides a_2 \land \dotsb \land g \divides a_n \} = \gcd(a_1, \gcd(a_2, \gcd(\cdots, \gcd(a_{n-1}, a_n) \cdots )
lcm(a1,a2,,an)   ⁣=def   ⁣min {m:a1\ma2\man\m}=lcm(a1,lcm(a2,lcm(,lcm(an1,an))\lcm (a_1, a_2, \dotsc, a_n) \defeq \min\limits~ \{ m : a_1 \divides m \land a_2 \divides m \land \dotsb \land a_n \divides m \} = \lcm(a_1, \lcm(a_2, \lcm(\cdots, \lcm(a_{n-1}, a_n) \cdots )

Набольший общий делитель дистрибутивен по наименьшему общему кратному и наоборот, то есть

lcm(a,gcd(b,c))=gcd(lcm(a,b), lcm(a,c))\lcm \bigl(a, \gcd(b, c) \bigr) = \gcd \bigl( \lcm(a, b),~ \lcm(a, c) \bigr)
gcd(a,lcm(b,c))=lcm(gcd(a,b), gcd(a,c))\gcd \bigl(a, \lcm(b, c) \bigr) = \lcm \bigl( \gcd(a, b),~ \gcd(a, c) \bigr)

Эти тождества показывают, что НОК и НОД образуют дистрибутивную решётку на множестве натуральных чисел.

Простые числа

Простые числа

Простое число — целое число, у которого ровно 22 делителя: 11 и оно само. Число 11 простым не считается.

Множество простых чисел иногда обозначается PP .

Если два числа aa и bb не имеют общий делителей, то есть если gcd(a,b)=1\gcd(a, b) = 1, то эти два числа называются взаимнопростыми. Записывается этот факт aba \rprime b.

ab   ⁣def   ⁣gcd(a,b)=1a \rprime b \defequiv \gcd(a, b) = 1

Лемма и теорема Евклида

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

Лемма Евклида

Пусть pp — простое число и a,bZa, b \in \ZZ. Если p\abp \divides a \cdot b, то p\ap \divides a или p\bp \divides b .

Предположим, что pap \nmid a (КАК НАПИСАТЬ?). Поскольку pp — простое, из этого следует, что gcd(p,a)=1\gcd(p, a) = 1. По теореме Безу существуют целые числа x,yx, y такие, что

px+ay=1.p x + a y = 1.

Умножим обе части этого равенства на bb, напомню, что p\abp \divides ab :

pxb+aby=b.p x b + a b y = b.

По условию леммы p\abp \divides a b и очевидно, что p\pxbp \divides p x b. Следовательно, pp делит левую часть, а значит, делит и правую — то есть p\bp \divides b .

Лемма Евклида лежит в основе доказательства Теоремы Евклида. Она выглядит следующим образом:

Если простое число pp делит произведение a1a2aka_1 a_2 \dotsm a_k, то pp делит хотя бы один из множителей aia_i .

Доказательство проводится индукцией. База k=2k = 2. Предположим, утверждение верно для k1k - 1, и пусть p\a1akp \divides a_1 \dotsm a_k. Обозначим A=a1ak1A = a_1 \dotsm a_{k-1}, тогда p\Aakp \divides A \cdot a_k. По лемме Евклида, либо p\Ap \divides A, либо p\akp \divides a_k . В первом случае по предположению индукции pp делит один из a1,,ak1a_1, \dotsc, a_{k-1}, во втором — делит aka_k.

Основная теорема арифметики

Основная теорема арифметики

Любое натуральное число n>1n > 1 может быть единственным образом представлено в виде произведения простых чисел:

n=k=1npk=p1p2p3pm1pmn = \prod\limits_{k=1}^n p_k = p_1 \cdot p_2 \cdot p_3 \dotsm p_{m-1} \cdot p_m

Под единственностью разложения здесь понимается единственность с точностью до порядка множителей.

Другой, иногда более удобный способ представления чисел

n=p простоеpnpгде каждое np0n = \prod\limits_{p ~\text{простое}} p^{n_p} \quad\text{где каждое}~ n_p \ge 0

Предположим, что существует натуральное число, имеющее два различных разложения на простые множители. Пусть n>1n > 1 — наименьшее такое число. Тогда

n=p1p2pk=q1q2qm,n = p_1 \cdot p_2 \dotsm p_k = q_1 \cdot q_2 \dotsm q_m,

где все pip_i и qjq_j — простые числа.

Рассмотрим простое число p1p_1. Оно делит левую часть, а значит, делит и правую. По лемме Евклида, если простое число делит произведение, то оно делит хотя бы один из множителей. Следовательно, существует индекс jj такой, что p1\qjp_1 \divides q_j. Но qjq_j — простое и не еденица, поэтому p1=qjp_1 = q_j. Следовательно мы можем разделить nn на p1p_1.

Разделим обе части равенства на p1p_1:

np1=p2pk=q2qm.\frac{n}{p_1} = p_2 \dotsm p_k = q_2 \dotsm q_m.

Получили, что число n/p1<nn / p_1 < n также имеет два различных разложения на простые множители. Это противоречит выбору nn как наименьшего контрпримера.

Следовательно, наше предположение неверно, и разложение любого натурального числа n>1n > 1 на простые множители единственно.

Основная теорема арифметики позволяет нам каждое натуральное число nn представить «каноническом» виде n=n2,n3,n5,n7,n11],n = \langle n_2, n_3, n_5, n_7, n_{11}], \dotsc \rangle. Здесь npn_p — степень вхождения числа pp в разложение числа nn на простые множители.

Например, число 8484 представимо как

84=2,1,0,1,0,0,0,=223784 = \langle 2, 1, 0, 1, 0, 0, 0, \dotsc \rangle = 2^2 \cdot 3 \cdot 7

При умножении двух чисел компоненты их канонического разложения складываются:

k=nmkp=np+mpпри всех простых pk = n \cdot m \Leftrightarrow k_p = n_p + m_p \quad\text{при всех простых}~ p

Отсюда выводим важный факт для делимости

d\ndpnpпри всех простых pd \divides n \leftrightarrow d_p \le n_p \quad\text{при всех простых } p

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

Перед тем как раскаладывать число на простые делители, попробуем найти границы, в которых мы будем искать наши делители. Логично, что искомые простые делители числа nn соответсвуют неравенству 1<p<n1 < p < n , но мы хотим сузить границы поиска.

Оценка наименьшего простого делителя

Пусть nNn \in \NN, n>1n > 1. Если nn — составное число, то оно имеет простой делитель pp такой, что pnp \le \sqrt{n} .

Поскольку nn составное, существуют целые числа a,ba, b такие, что 1<a<n1 < a < n, 1<b<n1 < b < n и n=abn = a \cdot b. Пусть aba \le b. Тогда истинно

a2ab=n,a^2 \le a \cdot b = n,

откуда следует ana \le \sqrt{n}. Число aa имеет хотя бы один простой делитель pp (поскольку a>1a > 1), и этот делитель также делит nn, так как p\ap \divides a и a\na \divides n, то p\np \divides n (из-за транзитивности делимости). И поскольку pap \le a, получаем pnp \le \sqrt{n} .

Для практического нахождения канонического разложения применяется следующий алгоритм:

Возьмём m=nm = n, i=1i = 1. На каждом шаге ищем наименьший простой делитель pip_i текущего значения mm, определяем максимальную степень αi\alpha_i, такую что piαi\mp_i^{\alpha_i} \divides m, затем приравниваем m=m/piαim = m / p_i^{\alpha_i}. Если после этого m=1m = 1, алгоритм завершён, иначе увеличиваем индекс ii на единицу и повторяем процесс.

Но зная что любое составное число имеет простой делитель такой, что pnp \le \sqrt{n} , то достаточно проверять делители начиная с 22 не превосходящие m\sqrt{m}, если после исчерпания всех простых pmp \le \sqrt{m} остаток m>1m > 1, то он сам является простым числом.

Вычисление НОД и НОК через каноническое разложение

Пусть a,bNa, b \in \NN и их канонические разложения имеют вид

a=p простоеpαp,b=p простоеpβp,a = \prod\limits_{p ~\text{простое}} p^{\alpha_p}, \quad b = \prod\limits_{p ~\text{простое}} p^{\beta_p},

где αp,βpN\alpha_p, \beta_p \in \NN. Тогда:

gcd(a,b)=p простоеpmin(αp,βp),lcm(a,b)=p простоеpmax(αp,βp).\gcd(a, b) = \prod\limits_{p ~\text{простое}} p^{\min\limits(\alpha_p,\, \beta_p)}, \quad \lcm(a, b) = \prod\limits_{p ~\text{простое}} p^{\max\limits(\alpha_p,\, \beta_p)}.

Пусть d=ppmin(αp,βp)d = \prod\limits_p p^{\min\limits(\alpha_p, \beta_p)}. Для любого простого pp имеем min(αp,βp)αp\min\limits(\alpha_p, \beta_p) \le \alpha_p и min(αp,βp)βp\min\limits(\alpha_p, \beta_p) \le \beta_p, следовательно, d\ad \divides a и d\bd \divides b, то есть dd — общий делитель чисел aa и bb .

Пусть теперь cc — произвольный общий делитель aa и bb . Тогда каноническое разложение cc имеет вид c=ppγpc = \prod\limits_p p^{\gamma_p} с γpαp\gamma_p \le \alpha_p и γpβp\gamma_p \le \beta_p для всех pp . Отсюда γpmin(αp,βp)\gamma_p \le \min\limits(\alpha_p, \beta_p) для всех pp , а значит, c\dc \divides d . Следовательно, dd — наибольший общий делитель, то есть d=gcd(a,b)d = \gcd(a, b) .

Аналогично, положим m=ppmax(αp,βp)m = \prod\limits_p p^{\max\limits(\alpha_p, \beta_p)}. Поскольку max(αp,βp)αp\max\limits(\alpha_p, \beta_p) \ge \alpha_p и max(αp,βp)βp\max\limits(\alpha_p, \beta_p) \ge \beta_p для всех pp , то a\ma \divides m и b\mb \divides m , то есть mm — общее кратное.

Пусть kk — произвольное общее кратное aa и bb . Тогда αpκp\alpha_p \le \kappa_p и βpκp\beta_p \le \kappa_p , где k=ppκpk = \prod\limits_p p^{\kappa_p} . Следовательно, max(αp,βp)κp\max\limits(\alpha_p, \beta_p) \le \kappa_p для всех pp , то есть m\km \divides k . Значит, mm — наименьшее общее кратное, то есть m=lcm(a,b)m = \lcm(a, b) .

Упражнения

    1

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

    2

    Есть число nn. Необходимо написать программу, которая позволяет найти сумму количества простых делителей всех соствных чисел kk таких, что k<nk < n.