Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

Next: 4.5. Как строить большие Up: 4. Алгоритмические проблемы теории Previous: 4.3. Сложность теоретико-числовых алгоритмов Contents: Содержание


4.4. Как отличить составное число от простого

Существует довольно эффективный способ убедиться, что заданное число является составным, не разлагая это число на множители. Согласно малой теореме Ферма, если число $ N$ простое, то для любого целого $ a$, не делящегося на $ N$, выполняется сравнение
\begin{displaymath}
a^{N-1}\equiv1\pmod N.
\end{displaymath} (9)

Если же при каком-то $ a$ это сравнение нарушается, можно утверждать, что $ N$ - составное. Проверка (9) не требует больших вычислений, это следует из алгоритма 1. Вопрос только в том, как найти для составного $ N$ целое число $ a$, не удовлетворяющее (9). Можно, например, пытаться найти необходимое число $ a$, испытывая все целые числа подряд, начиная с 2. Или попробовать выбирать эти числа случайным образом на отрезке $ 1<a<N$.

К сожалению, такой подход не всегда дает то, что хотелось бы. Имеются составные числа $ N$, обладающие свойством (9) для любого целого $ a$ с условием $ (a,N)=1$. Такие числа называются числами Кармайкла. Рассмотрим, например, число $ 561=3\cdot11\cdot17$. Так как $ 560$ делится на каждое из чисел $ 2$, $ 10$, $ 16$, то с помощью малой теоремы Ферма легко проверить, что $ 561$ есть число Кармайкла. Можно доказать (Carmichael, 1912), что любое из чисел Кармайкла имеет вид $ N=p_1\cdot\ldots\cdot p_r $, $ r\geq3 $, где все простые $ p_i $ различны, причем $ N-1$ делится на каждую разность $ p_i-1 $. Лишь недавно, см. [10], была решена проблема о бесконечности множества таких чисел.

В 1976 г. Миллер предложил заменить проверку (9) проверкой несколько иного условия. Детали последующего изложения можно найти в [8]. Если $ N$ - простое число, $ N-1=2^s\cdot t $, где $ t$ нечетно, то согласно малой теореме Ферма для каждого $ a$ с условием $ (a,N)=1$ хотя бы одна из скобок в произведении

\begin{displaymath}
(a^t-1)(a^t+1)(a^{2t}+1)\cdot\ldots\cdot(a^{2^{s-1}t}+1)=
a^{N-1}-1
\end{displaymath}

делится на $ N$. Обращение этого свойства можно использовать, чтобы отличать составные числа от простых.

Пусть $ N$ - нечетное составное число, $ N-1=2^s\cdot t $, где $ t$ нечетно. Назовем целое число $ a$, $ 1<a<N$, ``хорошим'' для $ N$, если нарушается одно из двух условий:
$ \alpha$) $ N$ не делится на $ a$;
$ \beta$) $ a^t\equiv1\pmod N $ или существует целое $ k$, $ 0\leq k<s $, такое, что

\begin{displaymath}
a^{2^kt}\equiv-1\pmod N.
\end{displaymath}

Из сказанного ранее следует, что для простого числа $ N$ не существует хороших чисел $ a$. Если же $ N$ составное число, то, как доказал Рабин, их существует не менее $ \frac{3}{4}(N-1)$.

Теперь можно построить вероятностный алгоритм, отличающий составные числа от простых.


Next: 4.5. Как строить большие Up: 4. Алгоритмические проблемы теории Previous: 4.3. Сложность теоретико-числовых алгоритмов Contents: Содержание

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...