Jako pseudoprvočísla se v teorii čísel označují taková celá čísla, která jsou sice složená, ale přitom splňují některé z testů, které dokáží většinu složených čísel odlišit od prvočísel. (Takové testy platí pro všechna prvočísla, ale většina složených čísel jim nevyhoví.) Jednotlivé druhy pseudoprvočísel jsou definovány podle konkrétních testů, kterými je nelze rozlišit od prvočísla.

Základní skupinou pseudoprvočísel jsou ta definovaná na základě Malé Fermatovy věty; pokud se hovoří o „pseudoprvočíslech“ bez upřesnění, míní se jimi zpravidla právě tato.

Druhy pseudoprvočísel

editovat

Fermatova pseudoprvočísla, Carmichaelova čísla

editovat

Malá Fermatova věta popisuje rovnost platnou pro všechna prvočísla, splňují ji však i některá čísla složená, která jsou proto označována jako pseudoprvočísla. Fermatovým pseudoprvočíslem se tedy nazývá takové složené číslo  , které splňuje (pro některé s ním nesoudělné celé číslo  ) vztah:

 

Příkladem pseudoprvočísla při základu 5 je číslo 4, neboť

 , přičemž  .

Existují dokonce čísla, u kterých tato rovnost platí pro libovolný základ  . Taková čísla se nazývají Carmichaelova čísla. Několik prvních Carmichaelových čísel je 561, 1105, 1729, 2465, 2821, … (sekvence A002997 v OEIS). Je dokázáno, že Carmichaelových čísel existuje nekonečně mnoho.[1]

Číslo, které je Fermatovým pseudoprvočíslem při základu 2, se označuje jako Pouletovo číslo.[2] Prvních několik Pouletových čísel je 341, 561, 645, 1105, 1387, … (sekvence A001567 v OEIS).

Silná pseudoprvočísla

editovat

Složené číslo   se označuje jako silné pseudoprvočíslo v (s ním nesoudělném) základu  , pokud platí alespoň jedna z následujících dvou podmínek:

  •  ,
  •  .

Eulerova–Jacobiho pseudoprvočísla

editovat

Jako EulerovoJacobiho pseudoprvočíslo o základu   se označuje liché složené číslo   (nesoudělné s  ), pro jehož Jacobiho symbol   platí:

 

Další pseudoprvočísla

editovat

Další pseudoprvočísla lze definovat na základě libovolného nedokonalého testu prvočíselnosti. Existují proto mimo jiné:

Aplikace, testování prvočíselnosti

editovat

Pseudoprvočísla jsou důležitá pro testování prvočíselnosti, neboť způsobují, že některé potenciální testy nejsou spolehlivé.

Mnoho aplikací (např. v kryptografii pro generování klíčů v algoritmu RSA) potřebuje rychle generovat velmi velká prvočísla. Možným přístupem je náhodně generovat velká lichá čísla a testovat, zda jsou prvočísla; k tomu je potřeba rychlý test prvočíselnosti. Jednoduchým kandidátem na takový test je vztah podle Malé Fermatovy věty, avšak její splnění ještě nezaručuje, že je číslo prvočíslem, může se jednat pouze o pseudoprvočíslo. Pro některé aplikace to nemusí vadit a mohou používat přímo pseudoprvočísla.

V jiných případech je potřeba použít silnější kritérium. U některých typů pseudoprvočísel neexistuje obdoba Carmichaelových čísel, tedy u nich vždy záleží na základu, vůči kterému se testuje, a každé složené číslo je možné takovým testem odhalit, pokud se použije vhodný základ. To vede k možnosti pravděpodobnostních algoritmů pro testování prvočíselnosti: test se provede vůči mnoha náhodně zvoleným základům, jakmile pro jediný základ nevyhoví, je zřejmé, že se jedná o číslo složené. Pokud je však test pro všechny báze splněn, jedná se s jistou pravděpodobností (tím vyšší, čím více testů bylo provedeno) o prvočíslo.

Reference

editovat
  1. W. R. Alford, A. Granville, C. Pomerance: There are Infinitely Many Carmichael Numbers. Annals of Mathematics Volume 139 (1994), No. 3, květen 1994, pp. 703-722.
  2. Pouletova čísla v encyklopedii MathWorld

Externí odkazy

editovat