Существует довольно эффективный способ убедиться, что заданное число является составным, не разлагая это число на множители. Согласно малой теореме Ферма, если число простое, то для любого целого , не делящегося на , выполняется сравнение
|
(9) |
Если же при каком-то это сравнение нарушается, можно утверждать, что - составное. Проверка () не требует больших вычислений, это следует из алгоритма 1. Вопрос только в том, как найти для составного целое число , не удовлетворяющее (). Можно, например, пытаться найти необходимое число , испытывая все целые числа подряд, начиная с 2. Или попробовать выбирать эти числа случайным образом на отрезке
К сожалению, такой подход не всегда дает то, что хотелось бы. Имеются составные числа , обладающие свойством () для любого целого с условием . Такие числа называются числами Кармайкла. Рассмотрим, например, число . Так как делится на каждое из чисел , , , то с помощью малой теоремы Ферма легко проверить, что есть число Кармайкла. Можно доказать (Carmichael, 1912), что любое из чисел Кармайкла имеет вид
, , где все простые различны, причем делится на каждую разность . Лишь недавно, см. [], была решена проблема о бесконечности множества таких чисел.
В 1976 г. Миллер предложил заменить проверку () проверкой несколько иного условия. Детали последующего изложения можно найти в []. Если - простое число, , где нечетно, то согласно малой теореме Ферма для каждого с условием хотя бы одна из скобок в произведении
делится на . Обращение этого свойства можно использовать, чтобы отличать составные числа от простых.
Пусть - нечетное составное число, , где нечетно. Назовем целое число , , если нарушается одно из двух условий:
) не делится на ;
) или существует целое ,
Из сказанного ранее следует, что для простого числа не существует хороших чисел . Если же составное число, то, как доказал Рабин, их существует не менее
.
Теперь можно построить вероятностный алгоритм, отличающий составные числа от простых.
Next: 4.5. Как строить большие
Up: 4. Алгоритмические проблемы теории
Previous: 4.3. Сложность теоретико-числовых алгоритмов
Contents: