Очень интересными с математической (и не только) точки зрения считаются простые числа. Для начала сформулируем несколько определений для дальнейшей работы.
Определение. Простое число — это натуральное число больше единицы и которое делится нацело только на единицу и на само себя. Таким образом, p считается простым, если p∈N,p>1,∀a∈N,a≠1,a≠p,p mod a≠0.
Определение. Натуральное число не являющиеся простым и больше 1 называется составным.
Примеры
- 3,5,7,23 — простые числа, что можно с легкостью проверить мысленно перебрав возможные делители для этих чисел. 177539 — тоже простое число, однако проверить это устным перебором делителей будет значительно сложнее.
- Любое четное число кроме 2 — составное, так как имеет как минимум один делитель помимо 1 и самого себя — 2.
Леммы
Сформулируем и докажем несколько лемм. Далее, если это потребуется, будем упоминать их как лемму и её номер в списке. Лемма (2), к примеру.
- Лемма. Пусть p и является наименьшим делителем (не считая 1) n∈N,n>1. Тогда p — простое число.
Спойлер - Лемма. Пусть p — наименьший (не считая 1) натуральный делитель составного числа n. Тогда p⩽√n.
Спойлер
Решето Эратосфена
Алгоритм. Способ нахождения простых чисел до определенного n. Метод подразумевает фильтрацию чисел до n, отсеивая составные числа. Является псевдополиномиальным алгоритмом. Алгоритм заключается в следующем:
- Требуется выписать все числа от 2 до n.
- Изначально p=2.
- Далее вычеркнем все числа представимые в виде 2p,3p,4p,… до n.
- Присвоим p следующее не вычеркнутое число. Будем повторять 3 и 4 шаги до тех пор, пока p⩽√n (по лемме (2)).
- Таким образом, все составные числа будут вычеркнуты и останутся только простые.
Замечание
Если внимательно взглянуть на алгоритм, можно заметить что мы начинаем вычеркивать с p2. Пусть k∈N,k>1 и k очередное простое (а значит не вычеркнутое) число в списке. А значит, что перед тем как p=k, мы вычеркнули (при условии что k>2) 2k, ведь на первом шаге мы вычеркнули все делящиеся на 2 числа. Если k>3, то и все делящиеся на 3 числа были уже вычеркнуты. То есть 3k уже вычеркнуто. Таким образом, все составные числа имеющие нетривиальные делители до k(k−1) включительно уже вычеркнуты, поэтому искать число чтобы вычеркнуть стоит начиная от p2. Подробнее с модфикациями алгоритма можно ознакомится на википедии и e-max.
Пример
Найдем все простые числа до 20 с помощью решета Эратосфена. Для начала выпишем все числа. 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
Положим p=2 и уберем все числа от p2 до 20. Останется 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
Далее p=3, и мы снова убираем ненужные нам числа. 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
Брать следующее p не смысла, так как это будет 5, а 52>20. Таким образом мы нашли все простые числа до 20.
Тест на простые числа и решето Эратосфена
У вас есть возможность проверить то, как вы усвоили материал.
Литература
- Электронный конспект по алгебре. Автор Белозеров.Г.С.
- И.М.Виноградов. Основы теории чисел. 6-ое издание, 1952 год. стр.18-20.