Pocklingtons primathetstest
Inom matematiken är Pocklington-Lehmer-primalitetstestet ett primalitetstest utarbetat av Henry Cabourn Pocklington och Derrick Henry Lehmer . Testet använder en partiell faktorisering av för att bevisa att ett heltal är primtal .
Den producerar ett primalitetscertifikat som kan hittas med mindre ansträngning än Lucas primalitetsteste , vilket kräver fullständig faktorisering av .
Pocklington kriterium
Den grundläggande versionen av testet bygger på Pocklington-satsen (eller Pocklington-kriteriet ) som är formulerad enligt följande:
Låt vara ett heltal, och anta att det finns naturliga tal a och p så att
-
()
-
p är primtal, och
()
-
()
Då är N primtal.
Notera: Ekvation ( 1 ) är helt enkelt ett Fermat-primalitetstest . Om vi hittar något värde på a , som inte är delbart med N , så att ekvation ( 1 ) är falsk, kan vi omedelbart dra slutsatsen att N inte är primtal. (Detta delbarhetsvillkor anges inte explicit eftersom det antyds av ekvation ( 3 ).) Låt till exempel . Med finner vi att . Detta är tillräckligt för att bevisa att N inte är primtal.
Bevis
|
||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Antag att N inte är primtal. Det betyder att det måste finnas ett primtal q , där som delar N . Eftersom p , och eftersom p är primtal, . Det måste alltså finnas ett heltal u , en multiplikativ invers av p modulo q −1 , med egenskapen att
och därför av Fermats lilla teorem
Detta innebär Detta visar att q delar i ( 3 ) , och därför är denna ; en motsägelse. |
Givet N , om p och a kan hittas som uppfyller villkoren för satsen, så är N primtal. Dessutom utgör paret ( p , a ) ett primatitetscertifikat som snabbt kan verifieras för att uppfylla villkoren för satsen, vilket bekräftar N som primtal.
Den största svårigheten är att hitta ett värde på p som uppfyller ( 2 ). För det första är det vanligtvis svårt att hitta en stor primfaktor av ett stort antal. För det andra, för många primtal N existerar inte ett sådant p . Till exempel har inget lämpligt p eftersom , och , vilket bryter mot ojämlikheten i ( 2 ) ; andra exempel inkluderar och .
Givet p är det inte alls lika svårt att hitta a . Om N är primtal, så kommer enligt Fermats lilla teorem vilket a i intervallet att uppfylla ( 1 ) (dock fallen och är triviala och kommer inte att uppfylla ( 3 )). Detta a kommer att uppfylla ( 3 ) så länge som ord( a ) inte delar . Således har ett slumpmässigt valt a i intervallet en god chans att fungera. Om a är en generator mod N , är dess ordning och därför fungerar metoden garanterat för detta val.
Generaliserat Pocklington-test
Ovanstående version av versionen av Pocklingtons teorem är ibland omöjlig att tillämpa eftersom vissa primtal är sådana att det inte finns något primtal som delar där . Följande generaliserade version av Pocklingtons teorem är mer allmänt tillämplig.
Sats: Faktor N − 1 som N − 1 = AB , där A och B är relativt primtal, , primtalsfaktoriseringen av A är känd, men faktoriseringen av B är inte nödvändigtvis känt.
Om det för varje primtal p av A finns ett heltal så att
-
och
()
-
,
()
då är N primtal.
Bevis
|
---|
Låt p vara ett primtal som delar A och låt vara den maximala potensen av p som delar A . Låt q vara en primfaktor av N . För från följdmängden . Detta betyder och på grund av även . Detta betyder att ordningen för är Således, . Samma observation gäller för varje primtalsfaktor av A , vilket innebär . Specifikt betyder detta Om N vore sammansatt, skulle det nödvändigtvis ha en primtalsfaktor som är mindre än eller lika med . Det har visat sig att det inte finns någon sådan faktor, vilket bevisar att N är primtal. |
Kommentarer
Pocklington–Lehmer-primalitetstestet följer direkt av denna följd. För att använda denna följd, hitta först tillräckligt många faktorer av N − 1 så att produkten av dessa faktorer överstiger . Kalla denna produkt A . Låt sedan B = ( N − 1)/ A vara den återstående, opåverkade delen av N − 1 . Det spelar ingen roll om B är primtal. Vi behöver bara verifiera att inget primtal som delar A också delar B , det vill säga att A och B är relativt primtal. Sedan, för varje primtal p av A , hitta en som uppfyller villkoren ( 6 ) och ( 7 ) för följden. Om s kan hittas, innebär konsekvensen att N är primtal.
Enligt Koblitz fungerar ofta = 2.
Exempel
Bestämma huruvida
är prime.
Sök först efter små primtalsfaktorer för . Det hittar vi snabbt
- .
Vi måste avgöra om och uppfyller villkoren för konsekvensen. , så . Därför har vi faktoriserat tillräckligt med för att tillämpa konsekvensen. Vi måste också verifiera att .
Det spelar ingen roll om B är primtal (det är det faktiskt inte).
Slutligen, för varje primfaktor p av A , använd försök och misstag för att hitta ett a p som uppfyller ( 6 ) och ( 7 ) .
För , prova . Att höja till denna höga effekt kan göras effektivt med binär exponentiering :
- .
Så uppfyller ( 6 ) men inte ( 7 ) . Eftersom vi tillåts olika a p för varje p , prova istället:
- .
Så uppfyller både ( 6 ) och ( 7 ) .
För , den andra primfaktorn av A , prova :
- .
- .
uppfyller både ( 6 ) och ( 7 ) .
Detta fullbordar beviset på att är primtal. Primalitetscertifikatet för skulle bestå av de två paren (2, 5) och (3, 2) .
Vi har valt små siffror för det här exemplet, men i praktiken när vi börjar faktorisera A kan vi få faktorer som i sig är så stora att deras primaalitet inte är uppenbar. Vi kan inte bevisa att N är primtal utan att bevisa att faktorerna för A också är primtal. I ett sådant fall använder vi samma test rekursivt på de stora faktorerna A , tills alla primtal är under en rimlig tröskel.
I vårt exempel kan vi med säkerhet säga att 2 och 3 är primtal, och därmed har vi bevisat vårt resultat. Primalitetscertifikatet är listan över par, som snabbt kan kontrolleras i följden.
Om vårt exempel hade inkluderat stora primtalsfaktorer skulle certifikatet vara mer komplicerat. Den skulle först bestå av vår initiala omgång av a p s som motsvarar "primtal" faktorerna för A ; Därefter, för varje faktor av A där primaliteten var osäker, skulle vi ha mer a p , och så vidare för faktorer av dessa faktorer tills vi når faktorer som primaaliteten är säker på. Detta kan fortsätta i många lager om den initiala primeringen är stor, men det viktiga är att ett certifikat kan produceras, som på varje nivå innehåller prime som ska testas, och motsvarande a p s, som enkelt kan verifieras .
Tillägg och varianter
Uppsatsen från 1975 av Brillhart, Lehmer och Selfridge ger ett bevis för vad som visas ovan som den "generaliserade Pocklington-satsen" som sats 4 på sidan 623. Ytterligare satser visas som tillåter mindre factoring. Detta inkluderar deras sats 3 (en förstärkning av en Proths sats från 1878):
- Låt där p är ett udda primtal så att . Om det finns ett a för vilket men då är N primtal.
Om N är stort är det ofta svårt att faktorisera tillräckligt med för att tillämpa ovanstående konsekvens. Sats 5 i Brillhart-, Lehmer- och Selfridge-papperet tillåter ett primalitetsbevis när den faktoriserade delen endast har nått ( . Många ytterligare sådana satser presenteras som gör att man kan bevisa primaaliteten av N baserat på den partiella faktoriseringen av och .
- Leonard Eugene Dickson, "History of the Theory of Numbers" vol 1, s 370, Chelsea Publishing 1952
- Henry Pocklington, "Math. Quest. Educat. Times", (2), 25, 1914, s 43-46 (Matematiska frågor och lösningar i fortsättning på de matematiska kolumnerna i "The Educational times".)
externa länkar
- Chris Caldwell, "Primality Proving 3.1: n-1 tests and the Pepin's tests for Fermats" på Prime Pages .
- Chris Caldwell, "Primality Proving 3.2: n+1 tests and the Lucas-Lehmer test for Mersennes" på Prime Pages .