Тест Люка — Лемера — ефективний тест простоти для чисел Мерсенна. Завдяки цьому тесту найбільшими відомими простими числами завжди були прості числа Мерсенна, причому навіть до появи комп'ютерів[1].
Історія
Тест був запропонований французьким математиком Люка 1878 року і доповнений американським математиком Лемером[en] 1930 року. Отриманий тест носить ім'я двох вчених, які спільно відкрили його, навіть не зустрічаючись за життя. 1952 року Робінсон за підтримки Лемера провів обчислення на комп'ютері SWAC з використанням тесту Люка — Лемера, результатом якого стало відкриття простих чисел
і
. Пізніше того ж року були відкриті
,
і
[1].
Тест
Тест Люка — Лемера базується на тому спостереженні, що простота числа Мерсенна
тягне простоту числа
, і в наступному твердженні:
Для встановлення простоти
послідовність чисел
обчислюється по модулю числа
(тобто обчислюються не власне числа
, довжина яких росте експоненціально, а остачі від ділення
на
, довжина яких обмежена p бітами). Останнє число в цій послідовності
називається вирахуванням Люка — Лемера. Таким чином, число Мерсенна
є простим тоді і тільки тоді, коли число
просте, і вирахування Люка — Лемера дорівнює нулю.
Можливими значеннями
є: 4, 10, 52, 724, 970, 10084, …
Обчислювальна складність
Обчислювальна складність тесту для числа
дорівнює
[2], оскільки в процесі тесту виконується
піднесення до квадрату та вирахувань по модулю
. Довжина
становить
біт, причому найпростіший алгоритм множення чисел має складність
. Для прискорення тесту слід використовувати алгоритми швидкого множення великих цілих чисел, наприклад, алгоритм Шьонхаге — Штрассена. Складність тесту в такому випадку становитиме
.
Приклади
Розглянемо виконання тесту для числа Мерсенна
.












Отже, число
— просте.
Доведення
Теорема: Нехай
— просте число, причому
. Визначимо послідовність
таким чином:


Тоді
— просте тоді і тільки тоді, коли
.
Доведення теореми засновано на властивостях послідовностей Люка
і
:


Такі властивості доводяться по індукції:




Лема: Нехай
— просте і
, тоді справедливе наступне твердження.
Якщо
, то
.
Доказ леми: Покладемо
,
. Використовуємо вище описані властивості, щоб отримати значення для
і
:
, в той час як
.
Тим же способом отримаємо:
і 
Інакше кажучи,
і
,
звідки випливає твердження леми, якщо взяти
.
Далі, розкривається вираз послідовностей за формулою біному Ньютона:


Тепер, якщо ми покладемо
, де
— просте число, більше 2, і врахуємо, що
кратне
за винятком тих випадків, коли
і
, ми отримаємо:
,
.
Якщо
теорема Ферма стверджує, що
. Тому
, тобто
. Якщо
, то

тобто
. У той же спосіб отримується результат, що
, якщо
. Отже доведено, що для будь-якого простого числа, існує ціле число
таке, що
.
Лема: Якщо
— додатне ціле число, і
— найменше число таке, що
, то ми маємо:
тоді і тільки тоді, коли
кратне
.
Доведення: Зауважимо, що послідовність
збігається з послідовністю
по модулю
, де число
взаємно просте з
, так як:
.
Доведення теореми: По індукції маємо
.
Більш того, з
слідує, що
. Звідси слід, що
і
не мають загальних непарних дільників. Якщо
, то для
і
можна записати:


Тепер, якщо
, то
повинно бути дільником числа
, але не повинно ділити
, тому
. Доведемо, що
. Нехай
. Числа
більше 3, так як
непарне і виконується
,
— просте за умовою. Використовуючи раніше доведені леми, отримаємо
, де

де
. Звідси випливає, що
кратне
. Покладемо
;
. Так як
— парне,
. Використовуємо раніше доведені факти і отримаємо
; отже
і
або
. Зауважимо, що
— ступінь двійки. Звідси випливає, що
і
. Якщо
— складене, то має бути
, де
і
— прості числа. Подальше розкладання на прості числа, якщо
— непарне, неможливо, тому
— просте.
Навпаки, припустимо, що
— просте. Покажемо, що
. Для цього достатньо показати, що
, так як
.

Так як
— просте, то біноміальний коефіцієнт
ділиться на
крім тих випадків, коли
чи
. Отже:
.
Тут
, тому
за малої теореми Ферма. Нарешті, використовуючи найпростіший випадок квадратичного закону взаємності, покажемо, що
, так як
і
. Це значить, що
, так що
.
[3]
Псевдокод
Lucas–Lehmer(p)
var s = 4
var M = 2p — 1
repeat p — 2 times:
s = ((s × s) — 2) mod M
if s = 0 return PRIME else return COMPOSITE
Модифікації
Для чисел виду
, де
існує модифікація цього тесту[en], розроблена Хансом Різелем[en]. Можливо узагальнення тесту для чисел виду
[4]. Також існує більш загальний варіант — тест Люка, який застосовний для будь-якого натурального числа
, якщо відоме розкладання на прості множники числа
.
Застосування
Завдяки тесту Люка — Лемера прості числа Мерсенна утримують лідерство як найбільші відомі прості числа[5]. Саме тест Люка — Лемера лежить в основі проекту розподілених обчислень GIMPS, що шукає нові прості числа Мерсенна.
Див. також
Примітки
Література