Как найти простое число в математике

Алгоритмы поиска простых чисел

Время на прочтение
6 мин

Количество просмотров 134K

«Самое большое простое число 232582657-1. И я с гордостью утверждаю, что запомнил все его цифры… в двоичной форме».
Карл Померанс

Натуральное число называется простым, если оно имеет только два различных делителя: единицу и само себя. Задача поиска простых чисел не дает покоя математикам уже очень давно. Долгое время прямого практического применения эта проблема не имела, но все изменилось с появлением криптографии с открытым ключом. В этой заметке рассматривается несколько способов поиска простых чисел, как представляющих исключительно академический интерес, так и применяемых сегодня в криптографии.

Решето Эратосфена

Решето Эратосфена — алгоритм, предложенный древнегреческим математиком Эратосфеном. Этот метод позволяет найти все простые числа меньше заданного числа n. Суть метода заключается в следующем. Возьмем набор чисел от 2 до n. Вычеркнем из набора (отсеим) все числа делящиеся на 2, кроме 2. Перейдем к следующему «не отсеянному» числу — 3, снова вычеркиваем все что делится на 3. Переходим к следующему оставшемуся числу — 5 и так далее до тех пор пока мы не дойдем до n. После выполнения вышеописанных действий, в изначальном списке останутся только простые числа.

Алгоритм можно несколько оптимизировать. Так как один из делителей составного числа n обязательно

$leqslant sqrt{n}$, алгоритм можно останавливать, после вычеркивания чисел делящихся на

$sqrt{n}$.

Иллюстрация работы алгоритма из Википедии:

image

Сложность алгоритма составляет

$O(n loglog n)$, при этом, для хранения информации о том, какие числа были вычеркнуты требуется

$O(n)$ памяти.

Существует ряд оптимизаций, позволяющих снизить эти показатели. Прием под названием wheel factorization состоит в том, чтобы включать в изначальный список только числа взаимно простые с несколькими первыми простыми числами (например меньше 30). В теории предлагается брать первые простые примерно до

$sqrt{log n}$. Это позволяет снизить сложность алгоритма в

$loglog n$ раз. Помимо этого для уменьшения потребляемой памяти используется так называемое сегментирование. Изначальный набор чисел делится на сегменты размером

$leqslant sqrt{n}$ и для каждого сегмента решето Эратосфена применяется по отдельности. Потребление памяти снижается до

$O(sqrt{n})$.

Решето Аткина

Более совершенный алгоритм отсеивания составных чисел был предложен Аткином и Берштайном и получил название Решето Аткина. Этот способ основан на следующих трех свойствах простых чисел.

Свойство 1

Если n — положительное число, не кратное квадрату простого числа и такое, что

$n equiv 1(mod 4)$. То n — простое, тогда и только тогда, когда число корней уравнения

$4x^2+y^2=n$ нечетно.

Свойство 2

Если n — положительное число, не кратное квадрату простого числа и такое, что

$n equiv 1(mod 6)$. То n — простое, тогда и только тогда, когда число корней уравнения

$3x^2+y^2=n$ нечетно.

Свойство 3

Если n — положительное число, не кратное квадрату простого числа и такое, что

$n equiv 11(mod 12)$. То n — простое, тогда и только тогда, когда число корней уравнения

$3x^2-y^2=n$ нечетно.

Доказательства этих свойств приводятся в этой статье.

На начальном этапе алгоритма решето Аткина представляет собой массив A размером n, заполненный нулями. Для определения простых чисел перебираются все

$x, y < sqrt n$. Для каждой такой пары вычисляется

$4x^2+y^2$,

$3x^2+y^2$,

$3x^2-y^2$ и значение элементов массива

$A[4x^2+y^2]$,

$A[3x^2+y^2]$,

$A[3x^2-y^2]$ увеличивается на единицу. В конце работы алгоритма индексы всех элементов массива, которые имеют нечетные значения либо простые числа, либо квадраты простого числа. На последнем шаге алгоритма производится вычеркивание квадратов оставшихся в наборе чисел.

Из описания алгоритма следует, что вычислительная сложность решета Аткина и потребление памяти составляют

$O(n)$. При использовании wheel factorization и сегментирования оценка сложности алгоритма снижается до

$O(n / loglog n)$, а потребление памяти до

$O(sqrt{n})$.

Числа Мерсенна и тест Люка-Лемера

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

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

$2^p-1$, где p — натуральное число. Такие числа называются числами Мерсенна.

Тест Люка-Лемера утверждает, что число Мерсенна

$M_p=2^p-1$ простое тогда и только тогда, когда p — простое и

$M_p$ делит нацело

$(p-1)$-й член последовательности

$S_k$ задаваемой рекуррентно:

$S_1=4, S_k=S_{k-1}^2-2$ для

$k > 1$.

Для числа

$M_p$ длиной p бит вычислительная сложность алгоритма составляет

${displaystyle O(p^{3})}$.

Благодаря простоте и детерминированности теста, самые большие известные простые числа — числа Мерсенна. Самое большое известное простое число на сегодня —

$2^{82,589,933}-1$, его десятичная запись состоит из 24,862,048 цифр. Полюбоваться на эту красоту можно здесь.

Теорема Ферма и тест Миллера-Рабина

Простых чисел Мерсенна известно не очень много, поэтому для криптографии с открытым ключом необходим другой способ поиска простых чисел. Одним из таким способов является тест простоты Ферма. Он основан на малой теореме Ферма, которая гласит, что если n — простое число, то для любого a, которое не делится на n, выполняется равенство

$a^{n-1}equiv 1{pmod {n}}$. Доказательство теоремы можно найти на Википедии.

Тест простоты Ферма — вероятностный тест, который заключается в переборе нескольких значений a, если хотя бы для одного из них выполняется неравенство

$a^{n-1} notequiv 1 pmod n$, то число n — составное. В противном случае, n — вероятно простое. Чем больше значений a использовано в тесте, тем выше вероятность того, что n — простое.

К сожалению, существуют такие составные числа n, для которых сравнение

$a^{n-1}equiv 1{pmod {n}}$ выполняется для всех a взаимно простых с n. Такие числа называются числам Кармайкла. Составные числа, которые успешно проходят тест Ферма, называются псевдопростыми Ферма. Количество псевдопростых Ферма бесконечно, поэтому тест Ферма — не самый надежный способ определения простых чисел.

Тест Миллера-Рабина

Более надежных результатов можно добиться комбинируя малую теорему Ферма и тот факт, что для простого числа p не существует других корней уравнения

$x^2 equiv 1 pmod p$, кроме 1 и -1. Тест Миллера-Рабина перебирает несколько значений a и проверяет выполнение следующих условий.

Пусть p — простое число и

$p-1=2^sd$, тогда для любого a справедливо хотя бы одно из условий:

  1. $a^{d}equiv pm1{pmod {p}}$
  2. Существует целое число r < s такое, что $a^{2^{r}d}equiv -1{pmod {p}}$

По теореме Ферма

$a^{p-1}equiv1pmod p$, а так как

$p-1=2^sd$ из свойства о корнях уравнения

$x^2 equiv 1 pmod p$ следует что если мы найдем такое a, для которого одно из условий не выполняется, значит p — составное число. Если одно из условий выполняется, число a называют свидетелем простоты числа n по Миллеру, а само число n — вероятно простым.

Чем больше свидетелей простоты найдено, тем выше вероятность того, что n — простое. Согласно теореме Рабина вероятность того, что случайно выбранное число a окажется свидетелем простоты составного числа составляет приблизительно

$1/4$.

Следовательно, если проверить k случайных чисел a, то вероятность принять составное число за простое

$approx(1/4)^k$.

Сложность работы алгоритма

$O(klog^3p)$, где k — количество проверок.

Благодаря быстроте и высокой точности тест Миллера-Рабина широко используется при поиске простых чисел. Многие современные криптографические библиотеки при проверке больших чисел на простоту используют только этот тест и, как показал Мартин Альбрехт в своей работе , этого не всегда оказывается достаточно.

Он смог сгенерировать такие составные числа, которые успершно прошли тест на простоту в библиотеках OpenSSL, CryptLib, JavaScript Big Number и многих других.

Тест Люка и Тест Baillie–PSW

Чтобы избежать уязвимости, связанные с ситуациями, когда сгенерированное злоумышленником составное число, выдается за простое, Мартин Альбрехт предлагает использовать тест Baillie–PSW. Несмотря на то, что тест Baillie–PSW является вероятностным, на сегодняшний день не найдено ни одно составное число, которое успешно проходит этот тест. За нахождение подобного числа в 1980 году авторы алгоритма пообещали вознаграждение в размере $30. Приз пока так и не был востребован.

Ряд исследователей проверили все числа до

$2^{64}$ и не обнаружили ни одного составного числа, прошедшего тест Baillie–PSW. Поэтому, для чисел меньше

$2^{64}$ тест считается детерминированным.

Суть теста сводится к последовательной проверке числа на простоу двумя различными методами. Один из этих методов уже описанный выше тест Миллера-Рабина. Второй — тест Люка на сильную псевдопростоту.

Тест Люка на сильную псевдопростоту

Последовательности Люка — пары рекуррентных последовательностей

${U_{n}(P,Q)}, {V_{n}(P,Q)}$, описываемые выражениями:

${displaystyle U_{0}(P,Q)=0,quad U_{1}(P,Q)=1,quad U_{n+2}(P,Q)=Pcdot U_{n+1}(P,Q)-Qcdot U_{n}(P,Q),,ngeq 0}$

${displaystyle V_{0}(P,Q)=2,quad V_{1}(P,Q)=P,quad V_{n+2}(P,Q)=Pcdot V_{n+1}(P,Q)-Qcdot V_{n}(P,Q),,ngeq 0}$

Пусть

$U_n(P,Q)$ и

$V_n(P,Q)$ — последовательности Люка, где целые числа P и Q удовлетворяют условию

${displaystyle D=P^{2}-4Qneq 0}$

Вычислим символ Якоби:

$left({frac {D}{p}}right)=varepsilon$.

Найдем такие r, s для которых выполняется равенство

$n-ε=2^rs$

Для простого числа n выполняется одно из следующих условий:

  1. n делит $U_s$
  2. n делит $V_{2^js}$ для некоторого j < r

В противном случае n — составное.

Вероятность того, что составное число n успешно пройдет тест Люка для заданной пары параметров P, Q не превышает 4/15. Следовательно, после применения теста k раз, эта вероятность составляет

$(4/15)^k$.

Тесты Миллера-Рабина и Люка производят не пересекающиеся множества псевдопростых чисел, соответственно если число p прошло оба теста, оно простое. Именно на этом свойстве основывается тест Baillie–PSW.

Заключение

В зависимости от поставленной задачи, могут использоваться различные методы поиска простых чисел. К примеру, при поиске больших простых чисел Мерсенна, сперва, при помощи решета Эратосфена или Аткина определяется список простых чисел до некоторой границы, предположим, до

$10^8$. Затем для каждого числа p из списка, с помощью теста Люка-Лемера, на простоту проверяется

$M_p=2^p-1$.

Чтобы сгенерировать большое простое число в криптографических целях, выбирается случайное число a и проверяется тестом Миллера-Рабина или более надежным Baillie–PSW. Согласно теореме о распределении простых чисел, у случайно выбранного числа от 1 до n шанс оказаться простым примерно равен

${frac {1}{ln n}}$. Следовательно, чтобы найти простое число размером 1024 бита, достаточно перебрать около тысячи вариантов.

P.S. Исходники

Реализацию всех описанных алгоритмов на Go можно посмотреть на GitHub.

Красивые аномалии встречаются в каждом предмете, но если есть одна область красоты, с которой согласится большинство математиков, то это простое число.

Эти числа занимают уникальный пьедестал в математике, особенно в области теории чисел. Великие умы потратили бесчисленные часы для расследования этой проблемы, в том числе такие великие умы, как Пол Эрдос, Г.Х. Харди и Сриниваса Рамануджан, и это лишь некоторые из них. Теперь, прежде чем мы углубимся в различные алгоритмы, чтобы найти простые числа, давайте сначала установим предварительное понимание простых чисел.

Что такое простые числа?

Самое техническое определение простых чисел состоит в том, что это натуральное число больше 1 и может быть получено только путем умножения 1 и самого себя. Если бы понимание натуральных чисел было более интуитивным, то можно было бы сказать, что это числа, которые мы используем для подсчета.

Чтобы понять это более точно, давайте выберем два числа — 5 и 6. Теперь 5 — это число, которое можно получить только умножением на 1 и 5 (само число). Однако, когда мы берем число 6, то замечаем, что его можно получить другим способом, кроме умножения 1 и 6 (само число). Его также можно получить умножением чисел 2 и 3, что означает, что это не простое число. Число, которое не является простым, известно как составное число.

Метод Марена Мерсенна

Метод простого числа Мерсенна — это специальный метод нахождения определенного вида простого числа, известный как простые числа Мерсенна. Название для этого метода происходит от французского монаха Марин Мерсенн, который первым определил его. Простые числа Мерсенна — это те, которые сводимы к виду 2n-1, где n-простое число. Первые несколько чисел в этом методе являются 2, 3, 5, 7, 13, 17, 19, 31, 61, и 89. Долгое время метод простых чисел Мерсенна представлял собой тяжёлую работу, так как при переходе к более высоким простым числам он был очень трудоемким.

Марен Мерсенн Французский математик

Однако, с появлением компьютеров, они теперь могли выполнять эти вычислительные вычисления, которые раньше делались людьми самым кропотливым и трудоемким образом. Мы определенно достигли более высоких простых чисел Мерсенна и простых чисел на общем уровне. Поиск простых чисел так же активен, как и другие численные поиски, выполняемые компьютерами. Другой числовой поиск, аналогичный движению простых чисел, заключается в добавлении десятичных разрядов к некоторым иррациональным числам, таким как пи (отношение длины окружности к диаметру). Однако непрерывный поиск следующего по величине простого числа существенно сложнее, чем поиск следующей цифры числа Пи.

Даже самые большие компьютеры (суперкомпьютеры) тратят значительное количество времени, чтобы проверить, является ли новое число (которое обычно ошеломляюще огромным) само по себе простым числом, и требуется еще больше времени, чтобы проверить, является ли число основным числом Мерсенна. По этой причине числа Мерсенна представляют большой интерес в области кибербезопасности и криптографии, особенно в отношении шифрования.

В августе 2008 года системный администратор UCLA Эдсон Смит нашел наиболее значимое простое число, известное на тот момент. Смит установил программное обеспечение для Great Internet Mersenne Prime Search (Gimps), проекта распределенных вычислений на добровольной основе. Это число было простым числом Мерсенна длиной 12 978 189 цифр. Чтобы дать представление о том, насколько он велик, на его написание уйдет почти два с половиной месяца, а в случае печати он растянется на 50 км!

Метод простых чисел Ферма

Число Ферма, как и число Мерсенна, представляет собой особый вид простого числа. Название происходит от математика 17-го века и юриста Пьера де Ферма. Число Ферма похоже на число Мерсенна… с одной маленькой поправкой. Давайте возьмем число Ферма Fm, где мы можем определить Fm как 2m +1. Здесь m снова равно 2, возведенному в степень n или 2n.

Пьер де Ферма (фр. Pierre de Fermat, 17 августа 1601 — 12 января 1665) — французский математик-самоучка, один из создателей аналитической геометрии, математического анализа, теории вероятностей и теории чисел.

Фермат был твердо убежден в том, что все числа вышеуказанной формы — это простые числа. В дальнейшем он сказал, что он будет производить простые числа для всех целочисленных значений m. Что делает эти числа уникальными и красивыми, но очень хитрыми, так это то, что простые числа становятся чрезвычайно большими очень быстро, даже в пределах первых четырех итераций. Чтобы доказать это, возьмем n в качестве следующих значений, n=0, 1, 2, 3 и 4.

Когда n = 0, m = 20 = 1; поэтому F0 = 2 1 + 1 = 2 + 1 = 3, что является простым. Когда n = 1, m = 21 = 2; поэтому F1 = 22 + 1 = 4 + 1 = 5, что является простым. Когда n = 2, m = 22 = 4; следовательно, F2 = 24 + 1 = 16 + 1 = 17, что является простым. Когда n = 3, m = 23 = 8; следовательно, F3 = 28 + 1 = 256 + 1 = 257, что является простым. Когда n = 4, m = 24 = 16; следовательно, F4 = 216 + 1 = 65536 + 1 = 65537, что является простым числом. Теперь, как вы можете заметить, к тому времени, когда мы достигнем F5, значение достигает 4 294 967 297.

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

Как находить простые числа

  • Авторы
  • Руководители
  • Файлы работы
  • Презентация
  • Наградные документы

Линдт М.В. 1


1МБОУ «Сапоговская СОШ»

Найдешкина Л.А. 1


1МБОУ «Сапоговская СОШ»




Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке «Файлы работы» в формате PDF

Введение

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

Почему же простые числа столь упорно сопротивляются нашим попыткам постичь порядок и закономерности их расположения? Может быть, в них вообще нет порядка, или же мы так слепы, что не видим его?
(Ч. Узерелл.1982)

Данная тема была выбрана потому, что существует тайна распределения простых чисел в ряду натуральных чисел — в одних частях ряда их больше, в других – меньше. Возник интерес к способам нахождения простых чисел, возможности создания модели, с помощью которой можно найти все простые числа и как полученные знания помогут разобраться с решением некоторых олимпиадных задач.

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

Цель: сбор и систематизация сведений о нахождении множества простых чисел для овладения способами решения олимпиадных задач с простыми числами.

Задачи:

1. Проанализировать источники исследования.

2. Найти сведения об истории отыскания простых чисел в интернете.

3. Попытаться составить модели для нахождения простых чисел с помощью найденных сведений.

4. Найти и решить олимпиадные задачи с простыми числами.

Объект исследования: простые числа

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

Гипотеза: все простые числа нужно отыскивать одно за другим.

Методы исследования: изучение источников по теме исследования, анализ полученных материалов, моделирование.

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

Какие источники помогут нам в поиске? Сайты: problems.ru проект МЦНМО при участии школы 57, научно-популярный физико-математический журнал «Квант». Статьи: Н. Макарова, «Простые числа», материал из Википедии — свободной энциклопедии, «Решето Эратосфена», «Число Мерсенна», «Простые числа Мерсенна», «Криптография», «Шифрование».

Основная часть

Глава 1. Теоретические сведения

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

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

6=2 3, 9=3∙3, 30=2∙15=3∙10.

А, например, числа 3,7,13,37 не могут быть разложены подобным образом.

Определение. Простым называется число, которое делится только само на себя и на единицу.

Евклид определял простые числа так: «Простое число есть измеряемое только единицей». Иными словами, простые числа не имеют других делителей, кроме единицы и самого себя. Если p простое число, то его можно представить в виде произведения двух натуральных чисел только следующим образом:

p = p∙1.

Числа, не являющиеся простыми, называются составными. Всякое составное число имеет не меньше двух делителей отличных от 1.

1 – особое число, оно не является ни простым, ни составным.

Простые числа-близнецы это пара простых чисел, отличающихся на 2.

Если натуральное число a делится на натуральное число b, то число b называют делителем числа a, а число а – кратным числа b.

Таким образом, простые числа – это как бы “кирпичики” для строительства всех натуральных чисел. Например, число N = 500 представимо в виде такого произведения:N = 22 ∙53

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

Свойства делимости.

Если в сумме натуральных чисел каждое слагаемое делится на некоторое число, то и сумма делится на это число.

Если уменьшаемое и вычитаемое делится на одно и то же число, то и разность делится на это число.

Если в произведении натуральных чисел один из множителей делится на некоторое число, то и произведение делится на это число.

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

Каждое натуральное число, отличное от 1, может быть представлено в виде произведения простых множителей, и притом только единственным образом (с точностью до порядка следования сомножителей).

Глава 2 Модели простых чисел

Модель «Решето Эратосфена»

Эратосфен Кире́нский древнегреческий ученый, жил в третьем веке до новой эры в Александрии.

В математике Эратосфена интересовал вопрос о том, как найти все простые числа среди натуральных чисел от 1 до… . Он придумал для этого следующий способ: сначала вычеркивают все числа, делящиеся на 2 (исключая само число 2). Потом берут первое из оставшихся чисел (а именно 3). Ясно, что это число — простое. Вычеркивают все идущие после него числа, делящиеся на 3. Первым оставшимся числом будет 5. Вычеркивают все идущие после него числа, делящиеся на 5, и т.д. Числа, которые уцелеют после всех вычеркиваний, и являются простыми. Так как во времена Эратосфена писали на восковых табличках и не вычеркивали, а «выкалывали» цифры, то табличка после описанного процесса напоминала решето. Поэтому метод Эратосфена для нахождения простых чисел получил название «решето Эратосфена». (Приложение 1).

Древнейший алгоритм такого поиска был предложен 2000 лет назад.

Итак, Решето Эратосфена работает как своего рода аналоговая вычислительная машина. И, значит, вот что изобрел великий грек: он изобрел счетную машину. Простые числа располагаются на числовом ряду весьма причудливым образом.

Найти редкие оазисы простых чисел, затерянные в обширных пустынях составных чисел, нелегко. Решето Эратосфена позволяет это сделать! Но всё же найти все простые числа таким способом нельзя.

II. Модель «Формулы 6n – 1, 6n + 1, где n натуральное число»

Анализируя Решето видно, что все простые числа либо на 1 меньше, либо на 1 больше чисел, кратных 6, т.е. 6n – 1, 6n + 1.

6 ∙ 1–1=5, 6 ∙ 1+1=7, 6 ∙ 2–1=11, 6 ∙ 2+1=13, 6 ∙ 3–1=17, 6 ∙ 3+1=19,

6 ∙ 4–1=23, 6 ∙4+1=25, 6 ∙5–1=29, 6 ∙ 5+1=31,

6 ∙ 6–1=35 – составное число.

III. Модель «Число Мерсенна 2р – 1, где p – простое число»

22 – 1 = 3, 25 – 1 = 31, 27 – 1 = 127, … .

Но, 211 – 1 составное. 211 – 1 =2047 = 23∙ 89.

3, 7, 31, 127, 2047, 8191, 131071, 524287, 8388607.

267 – 1 = 193707721 ∙ 761838257287.

243112609 – 1 (46 число Мерсенна) – это самое большое найденное простое число.

В течение почти 200 лет математики считали, что число Мерсенна 267 – 1 простое. В 1903 г профессор Коул доказал, что это число имеет два простых множителя: 193707721 и 761838257287. Коул, чтобы разложить число на множители потратил все воскресенья в течение трёх лет.

Маре́н Мерсе́нн (1588 — 1648) — французский математик, физик, философ и теолог.

Числа вида 2р – 1, где p – простое число, называются числами Мерсенна, впервые заметившего, что среди таких чисел много простых.

Как видно, среди первых девяти чисел Мерсенна только два составные.

В настоящее время составлены специальные программы для поиска чисел Мерсенна. Последнее число найдено в 2018 г.

Глава 3. Как искали?

Изучали таблицу простых чисел, двигаясь по натуральному ряду. (Приложение 2)

Простые числа в среднем встречаются все реже.

Числа-близнецы — два простых числа идут через одно, (например, 17 и 19, 29 и 31), а иногда подряд идет миллион составных чисел.

Простые числа могут оканчиваться только на следующие цифры: 1, 3, 7 или 9. Если число оканчивается на 2, 5 или 0, то оно не может быть простым, просто потому, что делится без остатка соответственно на 2, на 5 или на 10 (естественно, кроме 2 и 5).

Глава 4. Как применяются простые числа в жизни человека

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

Простые числа находят спрятанными в природе, но человечество научилось их использовать.

Криптография, (криптография — обеспечение конфиденциальности и целостности данных) благодаря которой наши кредитные карточки остаются в безопасности, когда мы покупаем что-нибудь онлайн, использует простые числа. Каждый раз, когда вы вводите номер своей кредитной карты на вебсайте, вы полагаетесь на то, что простые числа сохранят ваши тайны и информацию о вас в секрете. Для кодирования вашей кредитной карты ваш компьютер получает публичный номер Н с вебсайта, который и будет использоваться для совершения операций с вашей кредитной картой.

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

Шифрование – это не единственная область применения простых чисел на практике. Простые числа используются в компьютерном моделировании различных процессов. Так же без них не обойтись и в машиностроении – например, количество лопаток турбин реактивных самолётов должно составлять простое число. Если этим правилом пренебречь, то возникает резонанс, разрушающий лопатки турбины.

Глава 5. Какие задачи нашли?

1. Докажите, что любое простое число, большее 3, можно записать в одном из двух видов: 6n + 1 либо 6n – 1, где n – натуральное число.

2. Найти все такие натуральные числа p, что p и 5p + 1 – простые.

3. В книге рекордов Гиннесса написано, что наибольшее известное простое число равно 23021377 – 1. Не опечатка ли это?

4. Найдите все простые числа, которые отличаются на 17.

5. Найдите все натуральные n, при которых 2n – 1 и 2n + 1 – простые.

Какие задачи смогли решить?

Олимпиадных задач на простые числа много.

Задачи разного уровня сложности.

Чтобы решить любую задачу необходимо много знать.

Глава 6. Решение олимпиадных задач с простыми числами

Найти все такие натуральные числа p, что p и  5p + 1  – простые.

Решение: если p нечётно, то  5p + 1  чётно, значит, p чётное число, а чётное и одновременно простое число только при p = 2.

Ответ: p = 2.

Найти все такие натуральные числа p, что p и  3p² + 1  – простые.

Решение: если p нечётно, то  3p² + 1  чётно.

Ответ: p = 2.

В книге рекордов Гиннесса написано, что наибольшее известное простое число равно  23021377 – 1.  Не опечатка ли это?

Решение: Какая последняя цифра у числа  23021377 – 1? Любая степень числа, оканчивающегося цифрой 1, тоже оканчивается цифрой 1. Поэтому разность  23021377 – 1  оканчивается на 0 и, следовательно, не является простым числом.

Ответ: опечатка.

Найдите все простые числа, которые отличаются на 17.

Решение: такие числа имеют разную чётность.

Ответ: 2 и 19.

Найдите все простые числа, которые равны сумме двух простых чисел и разности двух простых чисел.

Решение: указанное простое число p нечётно, поэтому в сумме и разности участвуют числа разной чётности. Итак,  p = q + 2 = r – 2.  Отсюда видно, что числа дают разные остатки при делении на 3, значит, одно из них кратно 3, а так как оно простое, то равно 3.

Ответ: 5.

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

Решение: докажем, что любое простое число  p > 11  представляется в виде суммы двух составных. Поскольку любое такое число нечётно, то число  p – 9  чётно и, следовательно, составное. Поэтому  p = (p – 9) + 9  – искомое представление.

С другой стороны, непосредственно проверяется, что числа 2, 3, 5, 7 и 11 не представимы в виде суммы двух составных.

Докажите, что при  n > 2  числа  2n – 1 и  2n + 1  не могут быть простыми одновременно.

Решение: из трёх последовательных чисел  2n – 1,  2n,  2n + 1  одно делится на 3. Но 2n на 3 не делится. Значит, одно из двух оставшихся чисел кратно 3.

Заключение

Почему мы не смогли получить достоверную модель простых чисел?

Модель «Решето Эратосфена» не позволяет найти все простые числа, из-за трудоёмкости процесса;

Модель «Формулы 6n – 1, 6n + 1, где n натуральное число» при n= 4 в формуле 6n + 1 получаем составное число;

Модель «Число Мерсенна 2р – 1, где p – простое число» при p=11 получаем составное число. Моделирование процесса нахождения простых чисел позволяет сделать вывод: гипотеза, что все простые числа нужно отыскивать одно за другим, подтвердилась.

Простые числа в будущем: простые числа несут в себе много тайн и их интересно узнать; продолжить изучение способов нахождения простых чисел и изучение методов решения олимпиадных задач с простыми числами.

Список литературы

Н. Макарова, «Простые числа».

Гальперин Г. А. Просто о простых числах.- Квант, № 4, 9 – 38 (1987)

http://ru.wikipedia.org

www.problems.ru

Приложение 1

Решето Эратосфена

Приложение 2

Таблица простых чисел

Просмотров работы: 1782

Простые числа — это натуральные числа, больше единицы, которые делятся без остатка только на 1 и на само себя. Например: 2, 3, 5, 7, 11, 13, 17, 19, 23… Единица не является ни простым числом, ни составным.

Последовательность простых чисел начинается с 2 и является бесконечной; наименьшее простое число — это 2 (делится на 1 и на самого себя).

Составные числа — это натуральные числа, у которых есть больше двух делителей (1, оно само и например, 2 и/или 3); это противоположность простым числам. Например: 4, 6, 9, 12 (все делятся на 2, на 3, на 1 и на само себя).

Все натуральные числа считаются либо простыми, либо составными (кроме 1).

Натуральные числа — это те числа, которые возникли натуральным образом при счёте предметов; например: 1, 2, 3, 4… (нет ни дробей, ни 0, ни чисел ниже 0).

Зачастую множество простых чисел в математике обозначается буквой P.

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 101 103 107 109
113 127 131 137 139 149

151

157

163

167

173

179

181

191

193

197

199

211

223

227

229

233

239

241

251

257

263

269

271

277

281

283

293

307

311

313

317

331

337

347

349

353

359

367

373

379

383

389

397

401

409

419

421

431

433

439

443

449

457

461

463

467

479

487

491

499

503

509

521

523

541

547

557

563

569

571

577

587

593

599

601

607

613

617

619

631

641

643

647

653

659

661

673

677

683

691

701

709

719

727

733

739

743

751

757

761

769

773

787

797

809

811

821

823

827

829

839

853

857

859

863

877

881

883

887

907

911

919

929

937

941

947

953

967

971

977

983

991 997

Как определить, является ли число простым?

Очень простой способ понять, является ли число простым — нужно его разделить на простые числа и посмотреть, получится ли целое число. Сначала нужно попробовать его разделить на 2 и/или на 3. Если получилось целое число, то оно не является простым.

Если после первого деления не получилось целого числа, значит нужно попробовать разделить его на другие простые числа: 5, 7, 11 и т. д. (на 9 делить не нужно, т. к. это не простое число и оно делится на 3, а на него вы уже делили).

Более структурированный метод — это решето Эратосфена.

Решето Эратосфена

Это алгоритм поиска простых чисел. Для этого нужно:

  1. Записать все числа от 1 до n (например, записываются все числа от 1 до 100, если нужны все простые числа между ними);
  2. Вычеркнуть все числа, которые делятся на 2 (кроме 2);
  3. Вычеркнуть все числа, которые делятся на 3 (кроме 3);
  4. И так далее по порядку со всеми невычеркнутыми числами до числа n (после 3 это 5, 7, 11, 13, 17 и т. д.).

Те числа, которые не будут вычеркнуты в конце этого процесса, являются простыми.

Взаимно простые числа

Это натуральные числа, у которых 1 — это единственный общий делитель. Например:

  • 14 (это 2 х 7) и 15 (это 3 х 5), единственный общий делитель — 1; если числа следуют одно за другим (как 13 и 12 либо 10 и 11), то они всегда будут взаимно простыми;
  • 7 (это 7 х 1) и 11 (это 11 х 1) — это два простых числа, а значит единственный общий делитель всегда будет только единица, простые числа всегда являются взаимно простыми;
  • или 30 и 48 не являются взаимно простыми, т. к. 6 х 5 = 30 и 6 х 8 = 48 и 6 — это наибольший общий делитель, т. е.: НОД (30; 48) = 6.

Число Мерсенна

Простое число Мерсенна — это простое число вида:

число Мерсенна формула, 2 в степени p минус 1

До 1536 г. многие считали, что числа такого вида были все простыми, пока математик Ульрих Ригер не доказал, что 2 (^11) – 1 = 2047 было составным (23 x 89). Затем появились и другие составные числа (p = 23, 29, 31, 37 и др.).

Например, для p = 23 это 2 (^23) – 1 = 8 388 607; И 47 x 178481 = 8 388 607, значит оно составное.

Почему 1 не является простым числом?

Российские математики Боревич и Шафаревич в своей знаменитой работе «Теория чисел» (1964 г.) определяют простое число как p (элемент кольца D), не равен ни 0, ни 1. И p можно называть простым числом, если его невозможно разложить на множители ab (т.е. p = ab), притом ни один из них не является единицей в D. Так как 1 невозможно представить ни в одном, ни в другом виде, 1 не считается ни простым числом, ни составным.

Почему 4 не является простым числом?

Простое число — это натуральное число, больше единицы, которое делится без остатка на 1 и на само себя. Т. к. 4 можно разделить на 1, на 2 и на 4, из-за деления на 2 оно не является простым.

Самое большое простое число

21 декабря 2018 года Great Internet Mersenne Prime Search (проект, целью которого является открытие новых простых чисел Мерсенна) обнаружил новое самое большое известное простое число:

(2 в степени 82,589,933) минус 1

Новое простое число также именуется M82589933 и в нём более чем на полтора миллиона цифр больше, чем в предыдущем (найденном годом ранее).

Узнайте про Рациональные числа и Натуральные числа.


Загрузить PDF


Загрузить PDF

Простые числа — это числа, которые делятся только на себя и на 1. Все остальные числа называются составными числами. Есть множество способов определить, является ли число простым, и все они имеют свои преимущества и недостатки. С одной стороны, некоторые методы отличаются большой точностью, но они довольно сложны, если вы имеете дело с большими числами. С другой стороны, существуют намного более быстрые способы, но они могут привести к неправильным результатам. Выбор подходящего метода зависит от того, с насколько большими числами вы работаете.

Примечание: во всех формулах n обозначает проверяемое число.

  1. Изображение с названием Check if a Number Is Prime Step 1

    1

    Перебор делителей. Достаточно поделить n на все простые числа от 2 до округленного значения({sqrt  {n}}).

  2. Изображение с названием Check if a Number Is Prime Step 2

    2

    Малая теорема Ферма. Предупреждение: иногда тест ложно идентифицирует составные числа как простые, даже для всех величин a.

    • Выберем целое число a, такое что 2 ≤ a ≤ n — 1.
    • Если an (mod n) = a (mod n), то число, вероятно, простое. Если равенство не выполняется, число n является составным.
    • Проверьте данное равенство для нескольких значений a, чтобы увеличить вероятность того, что проверяемое число действительно является простым.
  3. Изображение с названием Check if a Number Is Prime Step 3

    3

    Тест Миллера-Рабина. Предупреждение: иногда, хотя и редко, для нескольких значений a тест ложно идентифицирует составные числа как простые.

    • Найдите величины s и d, такие чтобы n-1=2^{s}*d.
    • Выберите целое число a в интервале 2 ≤ a ≤ n — 1.
    • Если ad = +1 (mod n) или -1 (mod n), то n, вероятно, является простым числом. В этом случае перейдите к результату теста. Если равенство не выполняется, перейдите к следующему шагу.
    • Возведите ответ в квадрат (a^{{2d}}). Если получится -1 (mod n), то n, вероятно, простое число. В этом случае перейдите к результату теста. Если равенство не выполняется, повторите (a^{{4d}} и так далее) до a^{{2^{{s-1}}d}}.
    • Если на каком-то шаге после возведения в квадрат числа, отличного от pm 1 (mod n), у вас получилось +1 (mod n), значит n является составным числом. Если a^{{2^{{s-1}}d}}neq pm 1 (mod n), то n не является простым числом.
    • Результат теста: если n прошло тест, повторите его для других значений a, чтобы повысить степень достоверности.

    Реклама

  1. Изображение с названием Check if a Number Is Prime Step 4

    1

    Перебор делителей. По определению число n является простым лишь в том случае, если оно не делится без остатка на 2 и другие целые числа, кроме 1 и самого себя. Приведенная выше формула позволяет удалить ненужные шаги и сэкономить время: например, после проверки того, делится ли число на 3, нет необходимости проверять, делится ли оно на 9.

    • Функция floor(x) округляет число x до ближайшего целого числа, которое меньше или равно x.
  2. Изображение с названием Check if a Number Is Prime Step 5

    2

    Узнайте о модульной арифметике. Операция «x mod y» (mod является сокращением латинского слова «modulo», то есть “модуль”) означает «поделить x на y и найти остаток».[1]
    Иными словами, в модульной арифметике по достижении определенной величины, которую называют модулем, числа вновь «превращаются» в ноль. Например, часы отсчитывают время с модулем 12: они показывают 10, 11 и 12 часов, а затем возвращаются к 1.

    • Во многих калькуляторах есть клавиша mod. В конце данного раздела показано, как вручную вычислять эту функцию для больших чисел.
  3. Изображение с названием Check if a Number Is Prime Step 6

    3

    Узнайте о подводных камнях малой теоремы Ферма. Все числа, для которых не выполняются условия теста, являются составными, однако остальные числа лишь вероятно относятся к простым. Если вы хотите избежать неверных результатов, поищите n в списке «чисел Кармайкла» (составных чисел, которые удовлетворяют данному тесту) и «псевдопростых чисел Ферма» (эти числа соответствуют условиям теста лишь при некоторых значениях a).[2]

  4. Изображение с названием Check if a Number Is Prime Step 7

    4

    Если удобно, используйте тест Миллера-Рабина. Хотя данный метод довольно громоздок при вычислениях вручную, он часто используется в компьютерных программах. Он обеспечивает приемлемую скорость и дает меньше ошибок, чем метод Ферма.[3]
    Составное число не будет принято за простое, если провести расчеты для более ¼ значений a.[4]
    Если вы случайным способом выберете различные значения a и для всех них тест даст положительный результат, можно с достаточно высокой долей уверенности считать, что n является простым числом.

  5. Изображение с названием Check if a Number Is Prime Step 8

    5

    Для больших чисел используйте модульную арифметику. Если у вас под рукой нет калькулятора с функцией mod или калькулятор не рассчитан на операции с такими большими числами, используйте свойства степеней и модульную арифметику, чтобы облегчить вычисления.[5]
    Ниже приведен пример для 3^{{50}} mod 50:

    Реклама

  1. Изображение с названием Check if a Number Is Prime Step 9

    1

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

    • Число1 = 35
    • Число2 = 97
  2. Изображение с названием Check if a Number Is Prime Step 10

    2

    Выберите два значения, которые больше нуля и соответственно меньше чисел Число1 и Число2. Эти значения не должны совпадать друг с другом.

    • Значение1 = 1
    • Значение2 = 2
  3. Изображение с названием Check if a Number Is Prime Step 11

    3

    Вычислите MMI (математическую мультпликативную инверсию) для Числа1 и Числа2.

    • Вычислите MMI
      • MMI1 = Число2 ^ -1 Mod Число1
      • MMI2 = Число1 ^ -1 Mod Число2
    • Только для простых чисел (это даст число для составных чисел, но оно не будет его MMI):
      • MMI1 = (Число2 ^ (Число1-2)) % Число1
      • MMI2 = (Число1 ^ (Число2-2)) % Число2
    • Например:
      • MMI1 = (97 ^ 33) % 35
      • MMI2 = (35 ^ 95) % 97
  4. Изображение с названием Check if a Number Is Prime Step 12

    4

    Создайте таблицу для каждой MMI вплоть до модулей log2:

    • Для MMI1
      • F(1) = Число2 % Число1 = 97 % 35 = 27
      • F(2) = F(1) * F(1) % Число1 = 27 * 27 % 35 = 29
      • F(4) = F(2) * F(2) % Число1 = 29 * 29 % 35 = 1
      • F(8) = F(4) * F(4) % Число1 = 1 * 1 % 35 = 1
      • F(16) =F(8) * F(8) % Число1 = 1 * 1 % 35 = 1
      • F(32) =F(16) * F(16) % Число1 = 1 * 1 % 35 = 1
    • Вычислите парные Число1 — 2
      • 35 -2 = 33 (10001) по основанию 2
      • MMI1 = F(33) = F(32) * F(1) mod 35
      • MMI1 = F(33) = 1 * 27 mod 35
      • MMI1 = 27
    • Для MMI2
      • F(1) = Число1 % Число2 = 35 % 97 = 35
      • F(2) = F(1) * F(1) % Число2 = 35 * 35 mod 97 = 61
      • F(4) = F(2) * F(2) % Число2 = 61 * 61 mod 97 = 35
      • F(8) = F(4) * F(4) % Число2 = 35 * 35 mod 97 = 61
      • F(16) = F(8) * F(8) % Число2 = 61 * 61 mod 97 = 35
      • F(32) = F(16) * F(16) % Число2 = 35 * 35 mod 97 = 61
      • F(64) = F(32) * F(32) % Число2 = 61 * 61 mod 97 = 35
      • F(128) = F(64) * F(64) % Число2 = 35 * 35 mod 97 = 61
    • Вычислите парные Число2 — 2
      • 97 – 2 = 95 = (1011111) по основанию 2
      • MMI2 = (((((F(64) * F(16) % 97) * F(8) % 97) * F(4) % 97) * F(2) % 97) * F(1) % 97)
      • MMI2 = (((((35 * 35) %97) * 61) % 97) * 35 % 97) * 61 % 97) * 35 % 97)
      • MMI2 = 61
  5. Изображение с названием Check if a Number Is Prime Step 13

    5

    Вычислите (Значение1 * Число2 * MMI1 + Значение2 * Число1 * MMI2) % (Число1 * Число2)

    • Ответ = (1 * 97 * 27 + 2 * 35 * 61) % (97 * 35)
    • Ответ = (2619 + 4270) % 3395
    • Ответ = 99
  6. Изображение с названием Check if a Number Is Prime Step 14

    6

    Проверьте, что Число1 не является простым

    • Вычислите (Ответ – Значение1) % Число1
    • 99 – 1 % 35 = 28
    • Так как 28 больше 0, то 35 не является простым числом.
  7. Изображение с названием Check if a Number Is Prime Step 15

    7

    Проверьте, что Число2 является простым.

    • Вычислите (Ответ – Значение2)% Число2
    • 99 – 2 % 97 = 0
    • Так как 0 равен 0, то 97 — скорее всего простое число.
  8. Изображение с названием Check if a Number Is Prime Step 16

    8

    Повторите шаги с 1 по 7 по меньшей мере еще два раза.

    • Если в шаге 7 получается 0:
      • Используйте другое Число1, если Число1 не является простым.
      • Используйте другое Число1, если Число1 является простым. В этом случае в шагах 6 и 7 должен получиться 0.
      • Используйте другие Значение1 и Значение2.
    • Если в шаге 7 вы постоянно получаете 0, то с очень большой вероятностью Число2 является простым.
    • Шаги с 1 по 7 могут привести к ошибке, если Число1 не является простым, а Число2 является делителем Числа1. Описанный метод работает во всех случаях, когда оба числа являются простыми.
    • Причина, по которой необходимо повторять шаги с 1 по 7, заключается в том, что в некоторых случаях, даже если Число1 и Число 2 не являются простыми, в шаге 7 вы получите 0 (для одного или обоих чисел). Это случается редко. Выберите другое Число1 (составное), и если Число2 не является простым, тогда Число2 не будет равно нулю в шаге 7 (за исключением случая, когда Число1 является делителем Числа2 — здесь простые числа всегда будут равны нулю в шаге 7).

    Реклама

Советы

  • Простые числа от 168 до 1000: 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, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997.[6]
  • Хотя при работе с большими числами перебор делителей является трудоемким способом проверки, он довольно эффективен в случае малых чисел. Даже в случае больших чисел начинают с тестирования малых делителей, а затем переходят к более сложным методам проверки простоты чисел (если малые делители не найдены).

Реклама

Что вам понадобится

  • Бумага, ручка или компьютер

Об этой статье

Эту страницу просматривали 198 067 раз.

Была ли эта статья полезной?

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Как исправить ошибку vcomp110 dll для windows 10
  • Как найти мелодию по ритму
  • Как найти напряжение на аноде
  • Как найти опытного трейдера
  • Как найти задолжников по алиментам

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии