
Mathematica / Глава 5. Простые целые числа
.pdfНи одному другому разделу теории чисел не свойственно столько загадочности и изящества, как разделу, занимающемуся изучением простых чисел – непокорных упрямцев, упорно не желающих делиться ни на какие числа, кроме единицы и самих себя. Мартин Гарднер. Математические досуги
Глава 5. Простые целые числа
1
§1. Основные свойства простых чисел
Всилу теоремы 3.4 из главы 4 для кольца Z мы можем использовать традиционное определение простого числа.
1.1. Целое число p Z, называется простым, если p
удовлетворяет следующим двум условиям:
•p ≠ ±1;
•делителями числа p являются только числа
1, –1, p, –p.
Остальные целые числа (кроме ±1) принято
называть составными.
Лемма 1.2. Наименьший положительный делитель любого числа n N, отличный от 1, есть число простое.
Доказательство. Пусть c | n, c ≠ 1 и c – наименьшее с этим свойством. Если c – не простое число, то существует делитель c1 числа c, 1 < c1 < c; очевидно, c1 есть также делитель n. Это противоречит тому, что c есть наименьшее число с указанными выше свойствами. ♦
2

Лемма 1.3. Наименьший положительный отличный от 1 делитель составного числа n N, не превосходит
n .
Доказательство. Пусть c | n, c ≠ 1 и c – наименьшее число с этим свойством. Следовательно, n = c n1, n1 | n, n1 ≥ c, значит,
n n1 ≥ c2 n1, n ≥ c2 и c ≤ n . ♦
Теорема 1.4. (Евклид). Простых натуральных чисел бесконечно много.
Доказательство. От противного. Пусть p1, p2, …, pn – все простые, какие только есть. Рассмотрим число a = p1 p2 × …× pn + 1. Его наименьший положительный отличный от 1 делитель c, будучи простым (лемма 1.2), не может совпадать ни с одним из p1, p2, …, pn, так как иначе c | 1. ♦
3

Исторически первым эффективным алгоритмом нахождения простых чисел был метод, названный решетом Эратосфена в честь древнегреческого ученого Эратосфена Киренского. Шаги алгоритма следующие:
1.Выпишем числа 2, 3, 4, 5, 6, 7, … . Мы собираемся в этой последовательности отметить только простые числа. Пока ни одно число не отмечено. Все составные числа из последовательности будут удалены.
2.Отметим первый не отмеченный элемент в последовательности как простое число p.
3.Удалим из списка все числа, кратные p (само p не удаляется).
4.Вернемся к шагу 2.
4

Так как исходная бесконечная последовательность чисел начинается с 2, то 2 – первое простое число.
Убирая числа, кратные 2, получаем 2, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, … – так, что 3 – простое число;
убираем теперь числа, кратные 3, получаем: 2, 3, 5, 7, 11, 13, 17, 19, 23, 25, 29, 31, 35, 37, 41, 43, … – так, что 5 –
простое число; теперь удаляем все числа, кратные 5, получаем: 2, 3, 5,
7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 49, 53, … и т. д.
По лемме 1.3 следует, что составление таблицы всех простых чисел, меньших n, закончено сразу, как только вычеркнуты все кратные простым, меньшим n .
5
Определим функцию eratosthenes[n] в Mathematica,
которая выдает список всех простых чисел, меньших данного натурального n. Функция использует список s из n булевских значений. Первоначально список содержит только значения True, в конечном виде s[[k]] == False тогда и только тогда, когда k – не простое число. Окончательно, все простые числа, меньшие n, размещаются в списке primeList, который первоначально пуст.
eratosthenes[n_] :=
Module[{s = Table[True, {n}], primesList = {}, m, k}, s[[1]] = False;
For[m = 2, m ≤ IntegerPart[Sqrt[n]], m++,
If[s[[m]], For[k = m, k m ≤ n, k++, s[[k m]] = False]]]; For[m = 2, m ≤ n, m++,
If[s[[m]], AppendTo[primesList, m]]];
primesList]
Функция AppendTo[s, a] выдает в качестве результата список s, после добавления в него элемента a.
6
eratosthenes[100]
{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}
Мы уже знаем, что кольцо факториально (следствие A.3.9), но приведем независимое доказательство.
Теорема 1.5. (Основная теорема арифметики). Всякое натуральное число большее 1 единственным образом (с точностью до порядка сомножителей) разложимо в произведение простых чисел.
Доказательство. Пусть а > 1, р1 – его наименьший простой делитель. Значит, а = р1a1. Если, далее, a1 > 1, то
пусть р2 – его наименьший простой делитель и а1 |
= р2a2 , |
т.е. а = р1р2a2 , и так далее, пока an не станет |
равным |
единице. Имеем, таким образом, а = р1р2…pn, и возможность разложения доказана.
7
Покажем единственность. Допустим, существует другое разложение на простые множители, т.е. a = р1р2…pn = q1q2…qk. Обе части делятся на p1, значит, какое-то число qi делится на p1, но qi – простое, поэтому p1 = qi. Аналогично p2 равно какому-то числу qj и так далее до исчерпания либо всех pt, либо всех qs. Если pt, и qs не кончаются одновременно – возникает противоречие, что доказывает единственность разложения. ♦
Следствие 1.6. Всякое рациональное число однозначно представимо в виде
p1α1 p2α2 ... pkαk , где α1, α2, …, αk Z.
Следствие. 1.7. Если a = p1α1 p2α2 ... pkαk и b = p1β1 p2β2 ... pkβk –
целые числа, то наибольший общий делитель a и b
равен |
p1γ1 p2γ2 ... pkγk , а наименьшее общее кратное a и b |
равно |
p1δ1 p2δ2 ... pkδk , |
где γi = min {αi, βi}, а δi = max {αi, βi}.
8
§ 2. Формулы для простых чисел
Много усилий в истории математики было потрачено на получении формул (алгоритмов), дающих простые числа.
Многочлен найденный Эйлером x2 + x + 41 дает 40 простых чисел при 0 ≤ x ≤ 39. Он же нашел и еще несколько многочленов, например, x2 – 79x + 1601 при 0 ≤ x ≤ 79. Но справедлива
Теорема 2.1 (Эйлер). Любой многочлен с целыми коэффициентами (отличный от константы) при некотором натуральном значении аргумента принимает значение, представляющее собой составное число.
9
Доказательство. Пусть f(x) = a0xn + a1xn – 1 +. . . + an,
где все ai – целые числа.
Предположим, что при некотором k значение многочлена f(x) – простое число, т.е. f(k) = p, где p – простое.
Многочлен степени n принимает одно и то же значение не более чем в n точках.
Действительно, если f(x) = y0 более чем в n точках x1, x2,
…, xn + 1, то многочлен g(x) = f(x) – y0 имеет корни x1, x2, . . ., xn + 1, а, как известно, любой многочлен не может иметь
более n действительных корней.
Итак, при некотором t имеем: f(k + pt) ≠ 0 и f(k + pt) ≠ p. Разлагая f(k + pt) по степеням pt (используя бином Ньютона), получим
f(k + pt) = f(k) + c1pt + c2(pt)2 + . . . + cn(pt)n,
где все ci – некоторые целые числа.
Поскольку f(k) = p, из предыдущего равенства получаем, что f(k + pt) делится на p, причём f(k + pt) ≠ 0 и f(k + pt) ≠ p, так что f(k + pt) – составное число. ♦
10