Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Mathematica / Глава 5. Простые целые числа

.pdf
Скачиваний:
53
Добавлен:
30.05.2015
Размер:
367.7 Кб
Скачать

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

Глава 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р2pn, и возможность разложения доказана.

7

Покажем единственность. Допустим, существует другое разложение на простые множители, т.е. a = р1р2pn = q1q2qk. Обе части делятся на 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

Соседние файлы в папке Mathematica