Je dokazano, ze mezi po sobe jdoucimi mocninami dvojky je alespon jedno. Z toho vyplyva, ze je jich nekonecne mnoho.
Dokonce je dokázáno, že pro každé
n > 1 existuje prvočíslo větší než
n a menší než
2n, viz Bertrandův postulát.
Jaka je jejich skutecna hustota to je vec druha. Overit, ze je neco prvocislo je vlastne stejne narocne jako faktorizace sama.
Tak to opravdu není stejné. Celý princip RSA je založený na tom, že zatímco test prvočíselnosti je vcelku triviální (jde provést v čase polynomiálním s délkou zápisu čísla), tak faktorizace je těžká. Skutečná obtížnost faktorizace není známá, takže se teoreticky může ukázat, že faktorizace je tak lehká jako test prvočíselnosti, ale pokud by to tak bylo, okamžitě dojde k prolomení RSA.
Proto se pouzivaji randomizovane algorigmy (napr. zalozene na fermatove vete). Ty ale mohou vracet i spatne vysledky, pravdepodobnost uspechu zavisi na mnozsvi invetovaneho procesoroveho casu.
Ve skutečnosti existují deterministické algoritmy testující prvočíselnost fungující v asymptoticky polynomiálním čase (viz např. Lenstra and Pomerance,
http://www.math.dartmouth.edu/~carlp/PDF/complexity12.pdf), byť jejich konstanty jsou vysoké a jsou pomalejší než algoritmy randomizované. Skutečně bezpečná implementace generátorů prvočísel by tedy měla opakovaně použít randomizovaný algoritmus k nalezení čísla, které je s vysokou pravděpodobností prvočíslo (třeba 1 ku milionu) a na něm pak spustit deterministický algoritmus, který sice trvá déle, ale skoro určitě uspěje a nebude ho třeba opakovat.