Lucas-Lehmertest voor mersennegetallen

Uit testwiki
Versie door 2a02:3035:b01:2ebc:6d3c:4e22:18eb:d252 (overleg) op 23 okt 2024 om 08:29 (Wiskundige typo)
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Naar navigatie springen Naar zoeken springen
Dit artikel gaat over de Lucas-Lehmertest voor mersennegetallen. Er is ook een algemene Lucas-Lehmertest, voor alle natuurlijke getallen.

De Lucas-Lehmertest voor mersennegetallen is een algoritme om te bepalen of het mersennegetal 2p1 (p een priemgetal) een mersennepriemgetal is. De test is ontwikkeld door Édouard Lucas en later verbeterd door Derrick Henry Lehmer.

Algoritme

Laat Mp=2p1 een mersennegetal zijn met p een priemgetal. Definieer nu de rij S als volgt:

si={4als i=0si122als i>0}

De eerste termen van deze rij zijn 4, 14, 194, 37634, ... Nu geldt dat Mp een priemgetal is dan en slechts dan als

sp20modMp

Anders is Mp een samengesteld getal.

Met FFT-implementatie heeft het algoritme een looptijd van O(p2logp).

Voorbeeld

Als voorbeeld nemen we M5=251=31.

s04mod31
s142214mod31
s214228mod31
s38220mod31

S3=0 dus 31 is een priemgetal.

Zie ook