Том 3. Простые числа. Долгая дорога к бесконечности | страница 74
С другой стороны, скорость и объем памяти современных компьютеров значительно выросли, так что поиск простого числа в длинном списке иногда более эффективен, чем сложный процесс определения, является ли данное число простым.
В тестах простоты наиболее часто используется малая теорема Ферма. Напомним, что эта теорема гласит: «Если р — простое число, то не существует такого числа а у меньшего р (а и р взаимно просты), что a>p-1—1 дает при делении на р отличный от нуля остаток».
Теорема имеет ограничения, поскольку, как мы видели, она дает необходимое, но не достаточное условие. Например, если взять р = 7, мы видим, что З>6 — 1 делится на 7. Нет никакой гарантии, что 7 — простое число (мы-то знаем, что это простое число, потому что взяли для примера небольшие числа, но мы должны представить, что имеем дело с большими числами). Однако если взять р = 8, мы видим, что при делении З>7 — 1 на 8 получается 273,25, а значит, остаток не ноль. Теперь мы уверены, что 8 — не простое число (не находя его делителей).
Мы знаем точно, что любое число, которое не проходит тест с данным основанием а у является составным.
С другой стороны, если число проходит тест и является простым, мы называем основание «ложным». И продолжаем тестирование. Вероятность обнаружения «ложных» чисел уменьшается на 1/2 с каждым тестом, так что вероятность того, что число является простым, продолжает расти.
Число р, которое, не являясь простым, проходит тест с основанием а, называется псевдопростым для этого основания. Можно дать более общее определение псевдопростого числа: число называется псевдопростым, если оно проходит тест простоты, но оказывается составным.
Дело обстоит сложнее для чисел, которые проходят тесты с любым основанием, но не являются простыми. Например, число 561 проходит тест простоты с любым основанием и все же является составным (561 = 3 х 11 х 17). Такие числа, открытые американским математиком Робертом Кармайклом (1879–1967), называются числами Кармайкла. Сегодня известно 2163 числа Кармайкла, и они находятся среди первых 25 млрд натуральных чисел. Все они имеют по крайней мере три простых делителя.
Существует 16 чисел Кармайкла, меньших 100 000, а именно:
561,1105,1729, 2465, 2821, 6601, 8911,10585,15841, 29341, 41041, 46657, 52633, 62745, 63973, 75361.
Числа Кармайкла также называют абсолютными псевдопростыми числами.
Сегодня существует два типа алгоритмов, используемых для определения, является ли число простым: детерминированный полиномиальный и вероятностный полиномиальный.