Тест Люка — Лемера — ефективний тест простоти для чисел Мерсенна. Завдяки цьому тесту найбільшими відомими простими числами завжди були прості числа Мерсенна, причому навіть до появи комп'ютерів.
Історія Тест був запропонований французьким математиком Люка 1878 року і доповнений американським математиком 1930 року. Отриманий тест носить ім'я двох вчених, які спільно відкрили його, навіть не зустрічаючись за життя. 1952 року Робінсон за підтримки Лемера провів обчислення на комп'ютері SWAC з використанням тесту Люка — Лемера, результатом якого стало відкриття простих чисел і . Пізніше того ж року були відкриті , і .
Тест Тест Люка — Лемера базується на тому спостереженні, що простота числа Мерсенна тягне простоту числа , і в наступному твердженні:
Нехай — просте число, причому . визначимо послідовність таким чином:
Тоді — просте тоді і тільки тоді, коли .
Для встановлення простоти послідовність чисел обчислюється по модулю числа (тобто обчислюються не власне числа , довжина яких росте експоненціально, а остачі від ділення на , довжина яких обмежена p бітами). Останнє число в цій послідовності називається лишком Люка — Лемера. Таким чином, число Мерсенна є простим тоді і тільки тоді, коли число просте і лишок Люка — Лемера дорівнює нулю.
Можливими значеннями є: 4, 10, 52, 724, 970, 10084, …
Обчислювальна складність Обчислювальна складність тесту для числа дорівнює , оскільки в процесі тесту виконується піднесення до квадрату та вирахувань по модулю . Довжина становить біт, причому найпростіший алгоритм множення чисел має складність . Для прискорення тесту слід використовувати алгоритми швидкого множення великих цілих чисел, наприклад, алгоритм Шьонхаге — Штрассена. Складність тесту в такому випадку становитиме .
Приклади Розглянемо виконання тесту для числа Мерсенна .
Отже, число — просте.
Доведення Теорема: Нехай — просте число, причому . Визначимо послідовність таким чином:
Тоді — просте тоді і тільки тоді, коли .
Доведення теореми засновано на властивостях послідовностей Люка і :
Такі властивості доводяться по індукції:
Лема: Нехай — просте і , тоді справедливе наступне твердження. Якщо , то .
Доказ леми: Покладемо , . Використовуємо вище описані властивості, щоб отримати значення для і : , в той час як .
Тим же способом отримаємо: і Інакше кажучи, і , звідки випливає твердження леми, якщо взяти .
Далі, розкривається вираз послідовностей за формулою біному Ньютона:
Тепер, якщо ми покладемо , де — просте число, більше 2, і врахуємо, що кратне за винятком тих випадків, коли і , ми отримаємо: , . Якщо теорема Ферма стверджує, що . Тому , тобто . Якщо , то
тобто . У той же спосіб отримується результат, що , якщо . Отже доведено, що для будь-якого простого числа, існує ціле число таке, що .
Лема: Якщо — додатне ціле число, і — найменше число таке, що , то ми маємо: тоді і тільки тоді, коли кратне .
Доведення: Зауважимо, що послідовність збігається з послідовністю по модулю , де число взаємно просте з , так як: .
Доведення теореми: По індукції маємо . Більш того, з слідує, що . Звідси слід, що і не мають загальних непарних дільників. Якщо , то для і можна записати:
Тепер, якщо , то повинно бути дільником числа , але не повинно ділити , тому . Доведемо, що . Нехай . Числа більше 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
Модифікації Для чисел виду , де існує , розроблена . Можливо узагальнення тесту для чисел виду . Також існує більш загальний варіант — тест Люка, який застосовний для будь-якого натурального числа , якщо відоме розкладання на прості множники числа .
Застосування Завдяки тесту Люка — Лемера прості числа Мерсенна утримують лідерство як найбільші відомі прості числаThe «Top Ten» Record Primes.. Саме тест Люка — Лемера лежить в основі проекту розподілених обчислень GIMPS, що шукає нові прості числа Мерсенна.
Див. також Тест простоти Тест простоти Люка Числа Мерсенна
Примітки
Література