Глава 2 Целые, рациональные и вещественные числа 2.1. Целые числа Числа 1, 2, 3, . . . называются натуральными. Множество всех натуральных чисел обозначается N, т. е. N = {1, 2, 3, . . .} . Числа . . . , −3, −2, −1, 0, 1, 2, 3, . . . называются целыми. Множество всех целых чисел обозначается Z, т. е. Z = {. . . , −3, −2, −1, 0, 1, 2, 3, . . .} . Целые числа можно складывать, вычитать и умножать. При этом результатом всегда будет целое число. Результат деления двух целых чисел уже может не являться целым, однако возможно деление с остатком. Пусть a и b — целые числа, причем b 6= 0. Хорошо известно, что тогда существуют, причем единственные, целые числа q и r, такие, что a = qb + r, 0 ≤ r < |b|. (2.1) Правило, которое произвольной паре целых чисел a, b, где b 6= 0, ставит в соответствие пару целых чисел q и r, удовлетворяющих соотношениям (2.1), называется операцией деления с остатком, причем a называется делимым, b — делителем, q — неполным частным, а r — остатком. Для неполного частного q и остатка r будем использовать обозначения1 q = a div b, r = a mod b. Заметим, что из определения следует, что a div (−b) = −(a div b), a mod b = a mod (−b). Пример 2.1. 1 Заметим, что в некоторых языках программирования определение остатка и неполного частного может отличаться от приведенных здесь (если a или/и b отрицательные). 2, 14 mod 5 = 4, так как (−14) div 5 = −3, (−14) mod 5 = 1, так как 3 mod 7 = 3, так как 14 div 5 = 3 div 7 = 0, (−3) div 7 = −1, 14 div (−5) = −2, (−3) mod 7 = 4, так как 14 mod (−5) = 4, так как (−14) div (−5) = 3, (−14) mod (−5) = 1, так как 3 div (−7) = 0, 3 mod (−7) = 3, так как (−3) div (−7) = 1, (−3) mod (−7) = 4, так как 14 = 2 × 5 + 4, −14 = (−3) × 5 + 1, 3 = 0 × 7 + 3, − 3 = (−1) × 7 + 4, 14 = (−2) × (−5) + 4, −14 = 3 × (−5) + 1, 3 = 0 × (−7) + 3, − 3 = 1 × (−7) + 4, 0 ≤ 4 < 5; 0 ≤ 1 < 5; 0 ≤ 3 < 7; 0 ≤ 4 < 7; 0 ≤ 4 < 5; 0 ≤ 1 < 5; 0 ≤ 3 < 7; 0 ≤ 4 < 7. Упражнение 2.2. Каждое из чисел ±23, ±4 разделите с остатком на каждое из чисел ±5. Говорят, что целое число d является делителем целого числа a, если остаток при делении a на d равен 0, т. е. найдется целое q, такое a = qd. В этом случае еще говорят, что a делится на d без остатка, или что a кратно d. Обозначение: a ... d, или d | a. Если a не делится на d без остатка, то записывают a6 ... d или d6 | a. Пример 2.3. . 30 .. 1, . 30 .. 3, . 30 .. (−5), . 30 .. 30, . 306 .. 7. Упражнение 2.4. Найдите все положительные делители числа 30. Упражнение 2.5. . . 1) если a .. c, b .. . . 2) если a .. b, b .. . . 3) если a .. b, c .. Пусть a, b, c — целые. Докажите следующие утверждения: . . . c, то a + b .. c, a − b .. c, a · b .. c; . c, то a .. c; . d, то ac .. bd. Упражнение 2.6. Пусть a — целое число. Доказать, что каждое из следующих чисел делится на 6: a(a + 1)(2a + 1), a3 − a, a3 + 17a. 2.2. Наибольший общий делитель Если некоторое целое число d является делителем одновременно для каждого из двух заданных чисел a и b, то d называется их общим делителем. Пример 2.7. Общими делителями чисел 12 и 30 являются 1, 2, 6, −3 и др., а, скажем, 5 их общим делителем не является. Среди всех общих делителей двух заданных целых чисел a и b выберем максимальный. Он называется наибольшим общим делителем этих чисел и обозначается НОД(a, b). Например, НОД(12, 30) = 6. Упражнение 2.8. Найдите НОД(42, 60), НОД(220, 273). Очевидно, НОД определен, если по крайней мере одно из чисел a и b не равно нулю. Обычно полагают НОД(0, 0) = 0. Опишем хорошо известный алгоритм Евклида нахождения НОД. Предположим, что по крайней мере одно из чисел, a или b, не равно нулю. Не нарушая общности, будем считать, что b 6= 0 (иначе поменяем a и b ролями). На предварительной («нулевой») итерации разделим a на b, в частном получим q1 , в остатке — r1 . Если r1 6= 0, то перейдем к следующей (первой) итерации, на которой разделим b на r1 , в частном получим q2 , в остатке — r2 . На k-й итерации разделим rk−1 на rk , в в частном 2 получим qk+1 , в остатке — rk+1 . Вычисления продолжаются до тех пор, пока на некоторой, скажем, s-й, итерации вычисленный в результате очередного деления остаток rs+1 не будет нулевым. Оказывается, rs является наибольшим общим делителем чисел a и b. Теорема 2.9. Для любых двух целых чисел a и b, одновременно не равных нулю, алгоритм Евклида заканчивает свою работу за конечное число итераций и корректно вычисляет НОД {a, b}. Доказательство. Имеем a = q1 b + r1 , (β0 ) b = q2 r1 + r2 , (β1 ) r1 = q3 r2 + r3 , (β2 ) rs−3 = qs−1 rs−2 + rs−1 , (βs−2 ) rs−2 = qs rs−1 + rs , (βs−1 ) rs−1 = qs+1 rs . (βs ) По свойству операции деления с остатком (остаток не меньше нуля и строго меньше модуля делителя) имеем |b| < r1 < r2 < r3 < . . . ≤ 0 Таким образом, последовательность остатков r1 , r2 , r3 , . . . строго убывает, целочисленна и ограничена снизу нулем. Отсюда вытекает, что она не может быть бесконечной, поэтому алгоритм Евклида закончит свою работу за конечное число итераций. Теперь докажем, что rs = НОД {a, b}. Из равенства (βs ) следует, что rs−1 ... rs . Поэтому в правой части равенства (βs−1 ) первое слагаемое делится на rs . Так как второе слагаемое, очевидно, также делится на rs , то вся правая часть равенства (βs−1 ) делится на rs , поэтому на rs делится и левая часть этого равенства, т. е. rs−2 . В правой части равенства (βs−2 ) на rs также делятся оба слагаемых и, следовательно, rs−2 ... rs . Рассматривая эти равенства далее снизу вверх (легко провести индукцию), приходим к выводу, что на rs делятся правые части в (β0 ) и (β1 ), т. е. a ... rs и b ... rs , т. е. rs — общий делитель чисел a и b. Теперь покажем, что любой общий делитель δ чисел a и b является также делителем числа rs . Отсюда будет следовать, что rs является наибольшим среди всех общих делителей числе a и b, следовательно, rs = НОД {a, b}. Так как a ... δ и b ... δ, то из (β0 ) получаем, что r1 ... δ. Далее, так как b ... δ и r1 ... δ, то из (β1 ) получаем, что r2 ... δ. Рассматривая далее эти равенства сверху вниз (легко провести индукцию), приходим к выводу, что rs ... δ. Следствие 2.10. Пусть a, b — целые, одновременно не равные нулю, и δ — их некоторый общий делитель. Тогда δ является делителем и для НОД(a, b). Пример 2.11. Алгоритмом Евклида найдем НОД чисел a = 88179 и b = 5313. При делении a на b получаем частное и остаток: q1 = 16, r1 = 3171. При делении b на r1 получаем q2 = 1, r2 = 2142. 3 При делении r1 на r2 получаем q3 = 1, r3 = 1029. При делении r2 на r3 получаем q4 = 2 r4 = 84. При делении r3 на r4 получаем q5 = 12, r5 = 21. При делении r4 на r5 получаем частное q6 = 4 и остаток r6 = 0, поэтому НОД(a, b) = r5 = 21. Замечание 2.12. На алгоритм Евклида можно смотреть как на процедуру последовательного применения формулы НОД(a, b) = НОД(b, a mod b). (2.2) к исходным числам a и b. Справедливость (2.11) вытекает из доказательства теоремы 2.9. Впрочем, несложно доказать самостоятельно даже более общее утверждение: НОД(a, b) = НОД(a − qb, b) для произвольного числа q, из которого получается (2.2) при q = a ÷ b. Для чисел a, b из примера 2.11, в частности, имеем НОД(88179, 5313) = НОД(5313, 88179 mod 5313) = НОД(5313, 3171) = = НОД(3171, 5313 mod 3171) = НОД(3171, 2142) = = НОД(2142, 3171 mod 2142) = НОД(2142, 1029) = = НОД(1029, 2142 mod 1029) = НОД(1029, 84) = = НОД(84, 1029 mod 84) = НОД(84, 21) = = НОД(21, 84 mod 21) = НОД(21, 0) = 21. Теорема 2.13 (Линейное разложение НОД). Пусть a, b — целые числа, одновременно не равные нулю, и d = НОД(a, b). Тогда найдутся такие целые u, v, что ua + vb = d. (2.3) Числа u и v называются коэффициентами Безу, а равенство (2.3) — линейным разложением НОД или разложением Безу. Доказательство. Применим к a и b алгоритм Евклида. В ходе его работы получим последовательности частных q1 , q2 , . . . , qs+1 и остатков r1 , r2 , . . . , rs . На первой итерации запишем два тривиальных равенства: a = 1 · a + 0 · b, (γ−1 ) b = 0 · a + 1 · b, (γ0 ) и вычтем из первого второе, умноженное на q1 . Тогда согласно (β0 ) в левой части получим r1 . В правой части соберем множители у a и у b: r1 = 1 · a + (−q1 ) · b. (γ1 ) На второй итерации вычтем из равенства (γ0 ) равенство (γ1 ), умноженное на q2 . Согласно (β1 ) в левой части получим r2 . В правой части снова соберем множители у a и у b: r2 = (−q2 ) · a + (1 + q1 q2 ) · b. 4 (γ2 ) На третьей итерации из (γ1 ) вычтем (γ2 ), умноженное на q3 . Согласно (β2 ) в левой части получим r3 . В правой части снова соберем множители у a и у b: r3 = (1 + q2 q3 ) · a + (−q1 − q3 − q1 q2 q3 ) · b. (γ3 ) Будем выполнять такие преобразования далее. На k-й итерации (k = 1, 2, . . . , s), вычитая из равенства (γk−2) равенство (γk−1), умноженное на qk , получим rk = uk a + vk b, (γk ) где uk , vk — некоторые целые числа. На s-й итерации получим d = rs = us a + vs b. (γs ) Полагая u = us , v = vs , получаем разложение (2.3). Алгоритм нахождения коэффициентов Безу, описанный при доказательстве теоремы 2.13, называется расширенным алгоритмом Евклида. Замечание 2.14. Для заданных a и b коэффициенты Безу определяются не единственным образом. Легко видеть, что если пара u, v удовлетворяет соотношению (2.3), то этому соотношению будет удовлетворять и всякая пара u e, e v , где и других таких пар нет. u e=u+ kb , d v=v− e ka d (k ∈ Z) Пример 2.15. Найдем коэффициенты Безу для чисел a = 88179 и b = 5313 из примера 2.11. Для этого применим алгоритм из доказательства теоремы 2.13. Имеем a = 1 · a + 0 · b, (2.4) b = 0 · a + 1 · b. (2.5) Вычитая из равенства (2.4) равенство (2.5), умноженное на q1 = 16, получаем r1 = 3171 = 1 · a − 16 · b. (2.6) Вычитая из равенства (2.5) равенство (2.6), умноженное на q2 = 1, получаем r2 = 2142 = −1 · a + 17 · b. (2.7) Вычитая из равенства (2.6) равенство (2.7), умноженное на q3 = 1, получаем r3 = 1029 = 2 · a − 33 · b. (2.8) Вычитая из равенства (2.7) равенство (2.8), умноженное на q5 = 2, получаем r4 = 84 = −5 · a + 83 · b. (2.9) Вычитая из равенства (2.8) равенство (2.9), умноженное на q6 = 12, получаем r5 = 21 = 62 · a − 1029 · b. 5 (2.10) Это и есть линейное представление НОД. Коэффициенты Безу здесь u = 62, b = −1029. Вместо того, чтобы записывать целиком выражения (2.4)–(2.10) можно было организовать все вычисления в следующей таблице: 88179 1 0 5313 0 1 3171 1 −16 2142 −1 1029 17 2 −33 84 −5 21 83 62 5313 Для всякого k, начиная с 3, k-я строка этой таблицы есть разность (k − 2)-й строки и (k − 1)-й строки, умноженной на неполное частное qk−2 . Тогда в последней строки получаем коэффициенты линейного разложения НОД. Заметим, что вычисления коэффициентов Безу можно проводить одновременно с вычислением очередного частного и очередного остатка в алгоритме Евклида. Упражнение 2.16. Алгоритмом Евклида найдите НОД и его линейное представление для чисел 1) 89, 24; 2) 691, 103. Упражнение 2.17. Континуантом κ(q1 , q2 , . . . , qn ) называется сумма всевозможных произведений элементов q1 , q2 , . . . , qn , одно из которых содержит все эти элементы, а другие получаются из него выбрасыванием одной или нескольких пар сомножителей с соседними номерами. При этом член, получаемый выбрасыванием всех сомножителей (при четном n), считается равным 1. В частности, κ(q1 ) = q1 , κ(q1 , q2 ) = q1 q2 + 2, κ(q1 , q2 , q3 ) = q1 q2 q3 + q1 q2 + q2 q3 , κ(q1 , q2 , q3 , q4 ) = q1 q2 q3 q4 + q3 q4 + q1 q4 + q1 q2 + 1. Докажите, что для uk и vk из (γk ) справедливо uk = (−1)k+1 κ(q2 , q3 , . . . qk ), vk = (−1)k κ(q1 , q2 , . . . , qk ). Упражнение 2.18. Пусть в результате применения алгоритма Евклида к числам a, b получается последовательность неполных частных q1 , q2 , . . . , qs , то a = q1 + b 1 (2.11) 1 q2 + q3 + .. . 1 + qs−1 + 1 qs Дробь вида (2.11) называется непрерывной (или цепной) дробью. Упражнение 2.19. Определим последовательность Фибоначчи. Пусть F0 = 0, F1 = 1, Fk = Fk−1 + Fk−2 для всех k ≥ 2. Вот эта последовательность: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, . . . Найдите последовательность неполных частных, которые получаются в результате применения алгоритма Евклида к двум последовательным числам Фибоначчи Fk , Fk−1 при k ≥ 3. Сколько шагов деления выполнит алгоритм Евклида? Разложите Fk /Fk−1 в непрерывную дробь. Распространим понятие наибольшего общего делителя на системы из s чисел. Пусть a1 , a2 , . . . , as — целые числа. Число d называется их общим делителем, если ak ... d (k = 1, 2, . . . , s). Среди всех общих делителей чисел a1 , a2 , . . . , as можно выбрать максимальный. Он называется наибольшим общим делителем этих чисел. Наибольшим общим делителем НОД(a1 , a2 , . . . , as ) последовательности из s целых чисел a1 , a2 , . . . , as называется максимальное целое число, которое без остатка делит каждое из s заданных чисел. 6 Упражнение 2.20. Доказать, что НОД(a1 , a2 , . . . , as ) = НОД a1 , НОД(a2 , . . . , as ) . Эту формулу можно использовать для вычисления НОД последовательности из s чисел. Упражнение 2.21. Доказать, что если d = НОД(a1 , a2 , . . . , as ), то найдутся целые числа u1 , u2 , . . . , us , такие, что d = u 1 a1 + u 2 a2 + . . . + u s as . Число c называется общим кратным для чисел a и b, если c ... a и c ... b. Натуральное число c называется наименьшим общим кратным (НОК) чисел a и b, если оно минимально среди всех общих кратных этих чисел. Для наименьшего общего кратного будем использовать обозначение c = НОК(a, b). Аналогично вводится понятие наименьшего обзего кратного НОК(a1 , a2 , . . . , as ) для последовательности из s целых чисел a1 , a2 , . . . , as . Упражнение 2.22. Доказать, что НОД(a, b) НОК(a, b) = ab. Эту формулу можно использовать для вычисления НОК. Упражнение 2.23. Верно ли, что НОД(a, b, c) НОК(a, b, c) = abc? 2.3. Взаимно простые числа Два целых ненулевых числа a и b называются взаимно простыми, если НОД(a, b) = 1, иными словами, единственными общими делителями чисел a и b являются числа ±1. Утверждение 2.24. Для того, чтобы целые числа a и b были взаимно простыми, необходимо и достаточно, чтобы существовали такие целые числа u и v, что ua + vb = 1. (2.12) Доказательство. Необходимость условия следует из теоремы 2.13. Докажем достаточность. Пусть выполнено (2.12) и δ — произвольный общий делитель чисел a и b. Очевидно, что левая часть равенства (2.12) делится на δ, но тогда делится и правая часть, т. е. 1 ... δ, откуда δ = ±1. Таким образом, Утверждение 2.25. Если число a взаимно просто с каждым из чисел b и c, то оно взаимно просто и с их произведением bc. Доказательство. Так как число a взаимно просто с каждым из чисел b и c, то по утверждению 2.24 найдутся такие u1 , u2 , v1 , v2 , что u1 a+v1 b=1, u2 a+v2 c=1. Складывая эти два равенства и осуществляя очевидные преобразования, получаем: (u1u2 a + u1 v2 c + v1 bu2 )a + (vv1 )bc = 1, откуда по утверждению 2.24 получаем, что числа a и bc взаимно просты. Утверждение 2.26. Если ab ... c, причем a и c взаимно просты, то b ... c. 7 Доказательство. Так как a и c взаимно просты, то по утверждению 2.24 найдутся такие u, v, что ua + vc = 1. Умножая обе части этого равенства на b, получаем uab + vcb = b. Очевидно, второе слагаемое в левой части делится на c. Первое слагаемое левой части делится на c по условию. Следовательно, b ... c. Утверждение 2.27. Если a ... b и a ... c, причем b и c взаимно просты, то a ... bc. Доказательство. Так как a ... b, то для некоторого q имеем a = qb. Но a ... c. Так как b и c взаимно просты, то по утверждению 2.26 b ... c, откуда a ... bc. Распространим понятие взаимной простоты на системы из s чисел. Числа a1 , a2 , . . . , as называются взаимно простыми (в совокупности), если НОД(a1 , a2 , . . . , as ) = 1. Числа a1 , a2 , . . . , as называются попарно взаимно простыми, если при любых i, j, где i 6= j, числа ai и aj взаимно просты. Очевидно, что если числа попарно взаимно просты, то они взаимно просты в совокупности. Обратное, в общем случае неверно. Например, числа 6, 10, 15 взаимно просты (в совокупности), но никакая пара из них не является взаимно простой. Упражнение 2.28. Докажите, что для того, чтобы целые числа a1 , a2 , . . . as были взаимно простыми в совокупности необходимо и достаточно, чтобы существовали такие целые u1 , u2 , . . . us , что u1 a1 + u2 a2 + . . . + us as = 1. 2.4. Простые числа Целое число p, большее 1, называется простым, если оно не имеет целых положительных делителей, кроме2 1 и p. Целые числа, большие 1, не являющиеся простыми, называются составными. Число 1 не относится ни к простым, ни к составным. Вот первые 25 простых чисел: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, . . . То, что последовательность простых чисел не заканчивается (см. теорему 2.30), знали еще в Древней Греции. Утверждение 2.29. Любое целое число, большее 1, имеет простой делитель (т. е. делитель, являющийся простым числом). Доказательство. Если исходное число простое, то теорема доказана, так как это число делится само на себя. Пусть a — составное число. Согласно определению у него есть некоторый делитель a1 < a. Если a1 — простое число, то утверждение доказано. Иначе рассмотрим a1 , который должен иметь делитель a2 < a1 . Если a2 — простое число, то утверждение доказано, так как a2 будет делителем и для a. Иначе рассмотрим a2 и некоторый его делитель a3 < a2 и т. д. Очевидно, что процесс выделения делителей a1 > a2 > a3 > . . . закончится. Следующую теорему можно найти уже в «Началах» Евклида. 2 Делители ±1 и ±a числа a называются тривиальными. 8 Теорема 2.30. Простых чисел бесконечно много. Доказательство. От противного. Предположим, что всего имеется s простых чисел. Обозначим их p1 , p2 , p3 , . . . , ps . Рассмотрим тогда число p = p1 p2 . . . ps + 1. Легко видеть, что при делении p на pk (k = 1, 2, . . . , s) в остатке всегда будем получать 1, т. е. p6 ... pk (k = 1, 2, . . . , s). Итак, p не делится ни на одно простое число, поэтому, согласно утверждению 2.29, p само является простым. Полученное противоречие показывает, что наше предположение о конечности множества простых чисел неверно. Замечание 2.31. Из доказательства теоремы 2.30 вовсе не следует, что если p1 , p2 , . . . , ps — первые s простых чисел, то число p1 p2 . . . ps + 1 простое (к такому выводу при доказательстве теоремы мы пришли, только в предположении, что множество простых чисел конечно, а это не так). Например, число 30031 = 2×3×5×7×11×13+1 является составным: 30031 = 59×509. Утверждение 2.32. Пусть a — натуральное, а p — простое число. Тогда a ... p или числа a и p взаимно просты. Доказательство. Пусть d = НОД(a, p). Если d = 1, то a и p взаимно просты. Пусть d > 1. Так как p ... d, а p — простое число, то p = d, откуда a ... p. Утверждение 2.33. Пусть ab ... p, причем p — простое число, а a и b — целые. Тогда a ... p или b ... p. Доказательство. Покажем, что если a6 ... p, то b ... p. Действительно, по утверждению 2.32, если a6 ... p, то a и p взаимно просты. Теперь b ... p следует из утверждения 2.26. Теорема 2.34 («Основная теорема арифметики»). Любое натуральное число a допускает разложение вида a = p1 p2 . . . ps , (2.13) где p1 , p2 , . . . , ps — простые числа3 . Для заданного a представление (2.13) единственно с точностью до порядка следования сомножителей. Доказательство. Докажем, что разложение вида (2.13) существует для любого натурального a. Если a = 1 или a — простое, то разложение найдено. Если a составное, то согласно определению найдется его делитель b, такой, что 1 < b < a. Тогда для некоторого целого c, где 1 < c < a, будет выполнено a = bc. (2.14) Таким образом, мы нашли разложение числа a в произведение двух его нетривиальных делителей. Если b и c простые, то искомое разложение найдено. Если хотя бы одно из них, для определенности b, составное, то разложим его в произведение его нетривиальных делителей: b = df . Полученное разложение подставим в (2.14), тогда a будет разложено в произведение его трех нетривиальных делителей. Если среди этих делителей есть составное число, проведем с ним аналогичные операции и т. д. Так как всякий раз величина новых делителей уменьшается, то мы данный процесс завершится и мы получим разложение числа a на простые множители. 3 Разложение (2.13) имеет место в том числе и для a = 1. В этом случае мы полагаем s = 0. Произведения, содержащие ноль сомножителей, естественно считать равными 1. 9 Теперь докажем единственность разложения (2.13) для любого натурального a. Предположим, что нашлось два разложения a = p1 p2 . . . ps = q1 q2 . . . qt , (2.15) где p1 , . . . , ps , q1 , . . . , qt — простые. Из (2.15) следует, что p1 p2 . . . ps ... q1 . Согласно утверждению 2.33, так как q1 — простое, то найдется j, такое, что pj ... q1 . Для определенности предположим, что j = 1 (если не так, то всегда можно перенумеровать множители p1 , p2 , . . . , ps ). Таким образом, p1 ... q1 . Так как p1 — простое, то p1 = q1 . Сокращая на этот общий множитель, из (2.15) получаем p2 p3 . . . ps = q2 q2 . . . qt . Повторяя те же рассуждения, приходим к выводу что, после возможной перенумерации p2 = q2 . Сокращаем на этот множитель и т. д., пока не получим ps = qt и s = t. Таким образом, два разложения в (2.15) могут отличаться лишь порядком следования множителей. Заметим, что если доказательство существования разложения в теореме 2.34 практически очевидно, то доказательство единственности не так просто. Если в разложении (2.13) упорядочить множители по возрастанию и собрать одинаковые множители, то получим разложение a = pk11 pk22 . . . pks s , p1 < p2 < . . . < ps , (2.16) где p1 , p2 , . . . , ps — простые числа, а k1 , k2 , . . . , ks — натуральные. Для заданного натурального числа a представление (2.16) всегда существует и единственно. Оно называется разложением числа на простые множители, или каноническим разложением. Его можно обобщить на любые целые числа, кроме 0, следующим образом: a = (−1)σ pk11 pk22 . . . pks s , p1 < p2 < . . . < ps , σ ∈ {0, 1} . Упражнение 2.35. Найдите разложения на простые множители для чисел 962676, 1001, 1069037. Следствие 2.36. Пусть (2.16) — разложение числа a на простые множители. Тогда для любого делителя δ этого числа найдутся такие целые неотрицательные l1 , l2 , . . . , ls , что δ = pl11 pl22 . . . plss . Доказательство. Если δ — произвольный делитель числа a, то для некоторого q имеем a = qδ, поэтому в разложении δ на простые множители могут встретиться только числа p1 , p2 , . . . , ps , так как противное противоречило бы единственности разложения числа a. Следующая теорема обосновывает известный способ нахождения НОД с помощью разложения на простые множители. Теорема 2.37. Пусть a = pk11 pk22 . . . pks s , b = pl11 pl22 . . . plss p1 < p2 < . . . < ps , где p1 , p2 , . . . , ps — простые числа, а k1 , k2 , . . . , ks — целые неотрицательные, тогда ms 1 m2 НОД(a, b) = pm 1 p2 . . . ps , где mj = min {kj , lj } (j = 1, 2, . . . , s). 10 ms 1 m2 Доказательство. Очевидно, d = pm 1 p2 . . . ps является общим делителем чисел a и b. Но по следствию 2.36 любой их общий делитель является делителем и для d. Пример 2.38. Найдем НОД(997101, 2721411). Находим канонические разложения: 997101 = 32 · 73 · 17 · 19, 2721411 = 33 · 72 · 112 · 17, откуда НОД(997101, 2721411) = 32 · 72 · 17 = 7497. Упражнение 2.39. С помощью разложения на простые множители найти НОД(21294, 14586). Очевидный недостаток метода нахождения НОД через раложение чисел на простые множители заключается в его крайней медлительности. Для больших чисел намного более быстрым является алгоритм Евклида. 2.5. Сравнения и классы вычетов Пусть m — некоторое натуральное число. Говорят, что два целых числа a и b сравнимы по модулю m, если (a − b) ... m, т. е. для некоторого целого q a − b = qm. Это записывается следующим образом: a ≡ b (mod m), (2.17) что читается как «a сравнимо с b по модулю m». Соотношение (2.17) называется сравнением по модулю m. Если a и b не сравнимы по модулю m, то это будем записывать так: a 6≡ b (mod m). Например, 12 ≡ 27 (mod 5), 13 ≡ −8 (mod 7), 29 6≡ 14 (mod 2), −5 6≡ 18 (mod 10). Сравнимые по модулю m числа называют еще равноостаточными по этому модулю. Целесообразность употребления такого термина доказывает следующее утверждение. Утверждение 2.40. Для того, чтобы два целых числа были сравнимыми по модулю m необходимо и достаточно, чтобы остатки от их деления на m совпадали, т. е. a ≡ b (mod m) a mod m = b mod m. Доказательство. Необходимость. Если a ≡ b ( mod m), то (a − b) ... m. Числа a и b разделим с остатком на m. Имеем a = q1 m + r1 , ⇔ 0 ≤ r1 < m, b = q2 m + r2 , 0 ≤ r2 < m, (2.18) при этом числа q1 , q2 , r1 , r2 определяются единственным образом. Не нарушая общности, предположим, что r1 ≥ r2 . Обозначим r = r1 − r2 . Из (2.18) получаем a − b = (q1 − q2 )m + r, 0 ≤ r = r1 − r2 < m, откуда следует, что r = (a − b) mod m. Но (a − b) ... m, т. е. r = r1 − r2 = 0, поэтому r1 = r2 . Достаточность. Если a mod m = b mod m, то найдутся целые q1 , q2 , r, такие, что a = q1 m + r, b = q2 m + r, откуда a − b = (q1 − q2 )m, т. е. a − b ... m и a ≡ b (mod m). 11 Из утверждения, в частности, получаем, что любое число a сравнимо по модулю с одним и только с одним из чисел 0, 1, . . . , m − 1. Таким образом, все множество Z разбивается на m подмножеств сравнимых между собой целых чисел. Эти классы называются классами вычетов (или классами остатков) по модулю m. Например, для m = 2 это классы четных и нечетных чисел. Для m = 3 это класс чисел, кратных 3 {. . . , −9, −6, −3, 0, 3, 6, 9, . . .} , класс чисел, сравнимых с 1 по модулю 3: {. . . , −8, −5, −2, 1, 4, 7, 10, . . .} , и класс чисел, сравнимых с 2 по модулю 3: {. . . , −7, −4, −1, 2, 5, 8, 11, . . .} . Множество всех классов вычетов по модулю m обозначим Zm . Если из каждого класса выбрать ровно по одному представителю, то полученное множество чисел называется полной системой представителей. Очевидно, что в качестве полной системы представителей по модулю m можно выбрать числа 0, 1, . . . , m − 1. Такую системы представителей назовем канонической, или наименьшей. Очевидно, что для произвольного натурального m возможных систем представителей бесконечно много. Например, для m = 2 полную систему представителей образуют: 0, 1 (каноническая); 1, 2; −3, 12 и т. п. Для m = 3 полную систему представителей образуют: 0, 1, 2 (каноническая); 1, 2, 3; −1, 0, 1 и т. п. Упражнение 2.41. Какие наборы чисел образуют полную систему представителей по модулю 5: 1) 0, 1, 2, 3, 4; 2) 0, 1, 2, 3, 4, 5; 3) 1, 2, 3, 4, 5; 4) 0, −1, 2, −3, 4; 5) −4, −3, −2, −1, 0; 6) −2, −1, 0, 1, 2; 7) 12, 25, −16, 3, −14; 8) 1, −2, 5, 13, −9; 9) 3, 6, 9, 12, 15? Если a — целое число, то a будет обозначать4 класс вычетов по модулю m, которому принадлежит a. Например, если m = 2, то 0 = 2 = −344 — класс четных чисел, 1 = −1 = 11 — класс нечетных чисел. Если m = 3, то 0 = {. . . , −9, −6, −3, 0, 3, 6, 9, . . .} , 1 = {. . . , −8, −5, −2, 1, 4, 7, 10, . . .} , 2 = {. . . , −7, −4, −1, 2, 5, 8, 11, . . .} . 4 Иногда вместо a используют обозначение [a]. Разумеется в данном контексте невозможно a спутать с операцией сопряжения комплексных чисел. 12 Теперь рассмотрим арифметику остатков (или модулярную арифметику), т. е. введем операции на множестве классов вычетов по заданному модулю. Начнем с примера. Хорошо известно (и легко показать), что сумма и разность двух четных или двух нечетных чисел четна, а четного и нечетного (или наоборот) чисел нечетна. Произведение двух четных чисел четно, а произведение двух нечетных чисел или одного четного и одного нечетного нечетно. Это можно записать так: четное ± четное = четное ± нечетное = нечетное, нечетное ± четное = нечетное, нечетное ± нечетное = четное × четное = четное, четное × нечетное = четное, нечетное × четное = четное, четное, (2.19) нечетное × нечетное = нечетное. четное; Таким образом, четность результата сложения или умножения двух чисел, зависит только от четности операндов, но не зависит, какие именно числа складываюися или умножаются. Эти свойства обобщает следующее утверждение. Утверждение 2.42. Если a ≡ b (mod m), c ≡ d (mod m), то a + c ≡ b + d (mod m); a−c≡b−d (mod m); ac ≡ bd (mod m). Доказательство. Докажем, например, третье свойство. Так как a ≡ b (mod m), c ≡ d (mod m), то найдутся целые q1 , q2 , такие, что a − b = q1 m, c − d = q2 m, откуда (a + c) − (b + d) = (q1 + q2 )m, (a − c) − (b − d) = (q1 − q2 )m, ac − bd = (bq2 + dq1 + q1 q2 )m, откуда следуют требуемые соотношения. Следствие 2.43. Если a ≡ b (mod m), то an ≡ bn (mod m) для любого натурального n. Таким образом, сравнения по одному и тому же модулю можно складывать, вычитать и перемножать. Утверждение 2.44. Если ac ≡ bc (mod m) и НОД(c, m) = 1, то a ≡ b (mod m). Доказательство. Имеем ac − bc = (a − b)c ... m. Так как НОД(c, m) = 1, то согласно утверждению 2.26 имеем (a − b) ... m, т. е. a ≡ b (mod m). Таким образом, обе части сравнения можно сократить на множитель, взаимно простой с модулем. Упражнение 2.45. Доказать, что если ac ≡ bc (mod m) и НОД(c, m) = d, то a ≡ b (mod m/d). Пример 2.46. Найдем остаток от деления числа 20142016 −20152017 на 3. В силу утверждения 2.42 и следствия 2.43 нам нет нужды вычислять сперва 20142016 − 20152017 , а затем тедить результат на 3. Вместо этого будем заменять числа равноостаточными (по модулю 3). Так как 2014 ≡ 1 (mod 3), 2015 ≡ −1 (mod 3), то 20142016 − 20152017 ≡ 12016 − (−1)2017 ≡ 1 − (−1) = 2 13 (mod 3). Пример 2.47. Найдем остаток от деления числа 20142016 − 20152017 на 17. Учитывая, что 2014 ≡ 8 ( mod 17), 2015 ≡ 9 (mod 17) и 84 = 4096 ≡ −1 (mod 17), 94 = 6561 ≡ −1 (mod 17), получаем 20142016 ≡ 82016 = 84·504 ≡ (−1)504 = 1 (mod 17), 20152016 ≡ 92017 = 94·504+1 ≡ (−1)504 · 9 = 9 (mod 17), откуда 20142016 − 20152017 ≡ 1 − 9 = −8 ≡ 9 (mod 17). Свойства (2.19) получаются из утверждения 2.42 при m = 2. Утверждение 2.42 позволяет ввести на множестве классов вычетов по заданному модулю m операции сложения, вычитания и умножения по следующему правилу. Суммой двух классов по модулю m мы назовем класс, которому принадлежит сумма произвольных представителей слагаемых классов, т. е. a + b = a + b. Аналогично определяется разность и произведение двух классов по модулю m: a − b = a − b; a · b = a · b. Утверждение 2.42 показывает корректность этих определений: не зависимо от того, каких представителей из двух классов мы выбираем, результат операции зависит только от самих классов, но не от представителей. Пример 2.48. Построим таблицы сложения и умножения классов вычетов по модулю 6. Например, результат сложения 3 + 4 = 1 можно найти в первой таблице на пересечении строки, помеченной как 3 и столбца, помеченного как 4. + 0 1 2 3 4 5 × 0 1 2 3 4 5 0 0 1 2 3 4 5 0 0 0 0 0 0 0 1 1 2 3 4 5 0 1 0 1 2 3 4 5 2 2 3 4 5 0 1 2 0 2 4 0 2 4 3 3 4 5 0 1 2 3 0 3 0 3 0 3 4 4 5 0 1 2 3 4 0 4 2 0 4 2 5 5 0 1 2 3 4 5 0 5 4 3 2 1 Построим таблицы сложения и умножения классов вычетов по модулю 7. + 0 1 2 3 4 5 6 × 0 1 2 3 4 5 6 0 0 1 2 3 4 5 6 1 1 2 3 4 5 6 0 0 0 0 0 0 0 0 0 1 0 1 2 3 4 5 6 2 2 3 4 5 6 0 1 2 0 2 4 6 5 3 5 3 3 4 5 6 0 1 2 3 0 3 6 2 5 1 4 4 4 5 6 0 1 2 3 4 0 4 1 5 2 6 3 5 5 6 0 1 2 3 4 5 0 5 3 1 6 4 2 6 6 0 1 2 3 4 5 6 0 6 5 4 3 2 1 Упражнение 2.49. Построить таблицы сложения и умножения классов вычетов по модулям 2, 3, 4, 5. Элементы 0, 1, . . . , n − 1 множества Zn часто обозначают просто как 0, 1, . . . , n − 1 соответственно. 14 2.6. Рациональные и иррациональные числа Рациональное число — это число вида p/q, где p ∈ Z, q ∈ Z. Таким образом, множество всех рациональных чисел Q есть p : p ∈ Z, q ∈ Z, q = 6 0 . Q= q Представление рационального числа в виде несократимой дроби p/q, т. е. при условиях p ∈ Z, q ∈ N, НОД {p, q} = 1, и если p = 0, то q = 1, единственно. Хорошо известно, что любое рациональное число (и только такое число) можно представить в виде периодической десятичной дроби. Например, 1 = 1,0000 . . . = 1,(0); 1 = 0,50000 . . . = 0,5(0); 2 1 = 0,3333 . . . = 0,(3); 3 1 = 0,142857142857142857 . . . = 0,(142857); 7 27899 = 25,1342342342342 . . . = 25,1(342) 1110 (в скобках указан период). Напомним, что любое ненулевое число с периодом (0) можно эквивалентно записать как число с периодом (9). Например, 1 и 1/2 можно представить соответственно как 1 = 0,9999 . . . = 0,(9); 1 = 0,49999 . . . = 0,4(9). 2 Пример 2.50. Представим в виде периодической десятичной дроби числа 1/7 и 27899/1110. Для этого выполним деление «уголком»: →1,0 7 7 0,142857 . . . 27899 1110 2220 25,1342 . . . 30 28 5699 5550 20 14 1490 1110 60 56 → 3800 3330 40 35 4700 4440 50 49 →1 2600 2220 .. → 3800 . .. . Для дроби 1/7 через 6 шагов повторился тот же промежуточный остаток, 1, что и был вначале (соответствующие позиции отмечены знаком «→»). Следовательно, цифры в частном начнут повторяться: 1 = 0,142857142857142857 . . . = 0,(142857). 7 15 Для дроби 27899/1110 через 6 шагов повторился промежуточный остаток, 380, который уже встречался. Следовательно, цифры в частном начнут повторяться: 27899 = 25,1342342342342 . . . = 25,1(342). 1110 Упражнение 2.51. Представить числа 1/69, 13/21, 44168/2475 в виде периодической десятичной дроби. Пример 2.52. Представим десятичную дробь 0,(2013) в виде обыкновенной дроби. Пусть x = 0,(2013), тогда 10000x = 2013,(2013). Вычитая из второго равенства первое, получаем 9999x = 2013, откуда x= 2013 61 = . 9999 303 Заметим, что тот же результат можно получить, воспользовавшись формулой для суммы бесконечной геометрической прогрессии. Действительно, x = 0,(2013) = 2013 · 0,0001 + 2013 · (0,0001)2 + 2013 · (0,0001)3 + . . . = 0,2013 · 1 2013 61 = = . 1 − 0,0001 9999 303 Упражнение 2.53. Представить периодическую десятичную дробь 123,45(6789) в виде обыкновенной дроби. Предыдущие примеры показывают, что обыкновенную дробь можно представить в виде десятичной периодической, а любую десятичную периодическую — в виде обыкновенной. Нетрудно сформулировать и общие алгоритмы, которые осуществляют эти преобразования. Таким образом, справедливо Утверждение 2.54. Любое рациональное число p/q, где p ∈ Z, q ∈ N, можно записать в виде периодической десятичной дроби. И наоборот: любую периодическую десятичную дробь можно представить в виде p/q, где p ∈ Z, q ∈ N. Итак, рациональные числа — это в точности периодические десятичные дроби. Непериодические десятичные бесконечные дроби называются иррациональными числами. Примеры ир√ рациональных чисел: π = 3,14159265358979 . . ., e = 2,7182818284590 . . ., 2 = 1,41421356237 . . . √ Утверждение 2.55. 2 — иррациональное число. Доказательство. От противного. Предположим, что нашлись p ∈ N, q ∈ N, НОД {p, q} = 1, √ такие, что 2 = p/q (т. е. дробь p/q несократимая). Отсюда получаем 2 = p2 /q 2 , откуда p2 = 2q 2 . (2.20) Мы видим, что p2 — четное число, следовательно, p тоже четное. Т. е. найдется k ∈ N, такое, что p = 2k. Подставим это равенство в (2.20). Получаем 4k 2 = 2q 2 , откуда q 2 = 2k 2 , т. е. q 2 — четное, следовательно, q тоже четное. Итак, мы получили, что p и q оба четные, √ что противоречит несократимости дроби p/q. Следовательно, наше предположение, что 2 рациональное число, неверно. Упражнение 2.56. Пусть p — простое число. Доказать, что √ p — число иррациональное. Доказательства иррациональности таких чисел, как π, e, более сложные и здесь не рассматриваются. Рациональные и иррациональные числа вместе составляют множество R вещественных, или действительных, чисел. 16 Ответы и решения 2.2. 23 div 5 = 4, 23 mod 5 = 3; (−23) div 5 = −5, (−23) mod 5 = 2; 4 div 5 = 0, 4 mod 5 = 4; (−4) div 5 = −1, (−4) mod 5 = 1; 23 div (−5) = −4, 23 mod (−5) = 3; (−23) div (−5) = 5, (−23) mod (−5) = 2; 4 div (−5) = 0, 4 mod (−5) = 4; (−4) div (−5) = 1, (−4) mod (−5) = 1. 2.4. 1, 2, 3, 5, 6, 10, 15, 30. . . . . 2.5. Докажем, например, что из условий a .. c, b .. c следует a + b .. c. Так как a .. c, то найдется целое q1 , такое, .. что a = q1 c. Так как b . c, то найдется целое q2 , такое, что b = q2 c. Следовательно, a + b = (q1 + q2 )c, т. е. . a + b .. c. 2.8. НОД(42, 60) = 6, НОД(220, 273) = 1. 2.16. 1) НОД(89, 24) = 1 = −7 × 89 + 26 × 24; 2) НОД(691, 103) = 1 = 24 × 89 − 161 × 103. 2.19. Все частные (кроме последнего) равны 1. Алгоритм Евклида выполнит k − 3 делений. 2.23. В общем случае не верно. Например, равенство не имеет места для a = 6, b = 10, c = 15. 2.35. 962676 = 22 · 32 · 112 13 · 17; 1001 = 7 · 11 · 13; 1069037 = 97 · 103 · 107. 2.39. 21294 = 2 · 32 · 7 · 132 , 14586 = 2 · 3 · 11 · 13 · 17, НОД(21294, 14586) = 2 · 3 · 13 = 78. 2.41. 0, 1, 2, 3, 4; 1, 2, 3, 4, 5; −4, −3, −2, −1, 0; −2, −1, 0, 1, 2; 12, 25, −16, 3, −14; 3, 6, 9, 12, 15. 2.49. Таблицы сложения и умножения классов вычетов по модулю 2. + 0 1 0 0 1 1 1 0 × 0 1 0 0 0 1 0 1 Таблицы сложения и умножения классов вычетов по модулю 3. + 0 1 2 × 0 1 2 0 0 1 2 0 0 0 0 1 1 2 0 1 0 1 2 2 2 0 1 2 0 2 1 Таблицы сложения и умножения классов вычетов по модулю 4. + 0 1 2 3 × 0 1 2 3 0 0 1 2 3 0 0 0 0 0 1 1 2 3 0 1 0 1 2 3 2 2 3 0 1 2 0 2 0 2 3 3 0 1 2 3 0 3 2 1 Таблицы сложения и умножения классов вычетов по модулю 5. + 0 1 2 3 4 × 0 1 2 3 4 0 0 1 2 3 4 0 0 0 0 0 0 1 1 2 3 2 2 3 4 4 0 1 0 1 2 3 4 0 6 2 0 2 4 1 3 3 3 4 0 1 2 3 0 3 1 4 2 4 4 0 1 2 3 4 0 4 3 2 1 2.51. 1/69 = 0,(1449275362318840579710); 13/21 = 0,(619047); 44168/2475 = 17,84(56). 2.53. Пусть x = 123,45(6789), тогда 100x = 12345,(6789) и 1000000x = 123456789,(6789). Из двух последних равенств получаем 999900x = 123444444, откуда x= 10287037 123444444 = . 999900 83325 17