Generátor prvočísel online

Rychlé předvolby:
Oddělovač při kopírování

Co je prvočíslo?

Prvočíslo je přirozené číslo větší než 1, které je dělitelné pouze jedničkou a sebou samým. Nejmenší prvočísla jsou 2, 3, 5, 7, 11, 13, 17, 19, 23, 29… Číslo 2 je jediné sudé prvočíslo – všechna ostatní sudá čísla jsou dělitelná dvěma.

Čísla jako 4 (= 2 × 2), 6 (= 2 × 3) nebo 15 (= 3 × 5) prvočísla nejsou – říkáme jim čísla složená.

Jak generátor funguje?

Pro výpis všech prvočísel v rozsahu používáme Eratosthenovo síto – jeden z nejstarších a nejefektivnějších algoritmů, který popsal řecký matematik Eratosthenés ze Kyrény kolem roku 240 př. n. l.

Algoritmus postupně vyškrtává násobky každého nalezeného prvočísla. Co zbyde, jsou prvočísla. Celý výpočet probíhá přímo ve vašem prohlížeči – žádná data se neposílají na server.

Pro náhodný výběr generátor nejprve sestaví seznam všech prvočísel v rozsahu a poté z něj náhodně vybere požadovaný počet pomocí kryptograficky bezpečného generátoru (crypto.getRandomValues()).

Funkce generátoru

  • Všechna prvočísla – vypíše každé prvočíslo v zadaném rozsahu (max. 10 000)
  • Náhodný výběr – vybere N náhodných prvočísel z rozsahu (vhodné pro velké rozsahy)
  • Seřazení – výsledky seřaďte vzestupně
  • Oddělovač – zvolte, jak budou čísla oddělena při kopírování
  • Rychlé předvolby – nejčastější rozsahy jedním kliknutím

Kde se prvočísla používají?

Kryptografie a bezpečnost

Prvočísla jsou základem moderní kryptografie. Algoritmy jako RSA fungují na principu, že součin dvou velkých prvočísel je snadné spočítat, ale zpětné rozložení na prvočinitele je výpočetně velmi náročné.

  • RSA šifrování – klíče jsou generovány z dvou velkých prvočísel
  • Diffie-Hellman – výměna klíčů nad prvočíselným modulem
  • Hashovací funkce – prvočísla jako magické konstanty (SHA, MD5)

Matematika a věda

  • Teorie čísel – základní stavební kameny celých čísel
  • Goldbachova domněnka – každé sudé číslo > 2 lze vyjádřit jako součet dvou prvočísel (dosud nedokázáno)
  • Riemannova hypotéza – jeden z Hilbertových problémů, týká se rozložení prvočísel

Praktické použití

  • Hash tabulky – velikost tabulky jako prvočíslo snižuje kolize
  • Generátory pseudonáhodných čísel – lineární kongruence s prvočíselným modulem
  • Hudba a rytmus – polyrhytmy s prvočíselnými délkami cyklů

Rozložení prvočísel

Prvočísla jsou mezi přirozenými čísly rozmístěna nepravidelně, ale jejich hustota klesá s rostoucím rozsahem. Toto popisuje Věta o prvočíslech: počet prvočísel do N je přibližně N / ln(N).

RozsahPočet prvočísel
1–104
1–10025
1–1 000168
1–10 0001 229
1–100 0009 592
1–1 000 00078 498

Eratosthenovo síto krok za krokem

Rozsah 2–30:
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]

1. Vyber 2, vyškrtni násobky: 4, 6, 8, 10, 12...
2. Vyber 3, vyškrtni násobky: 9, 15, 21, 27...
3. Vyber 5, vyškrtni násobky: 25...
4. √30 ≈ 5.5 → hotovo

Prvočísla: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29

Eratosthenovo síto v kódu

JavaScript

function sieve(to) {
  const composite = new Uint8Array(to + 1);
  const primes = [];
  for (let p = 2; p <= to; p++) {
    if (composite[p]) continue;
    primes.push(p);
    for (let j = p * p; j <= to; j += p) composite[j] = 1;
  }
  return primes;
}

Python

def sieve(n):
    composite = bytearray(n + 1)
    primes = []
    for p in range(2, n + 1):
        if not composite[p]:
            primes.append(p)
            for j in range(p * p, n + 1, p):
                composite[j] = 1
    return primes

Časté otázky (FAQ)

Je 1 prvočíslo? Ne. Číslo 1 se tradičně nepovažuje za prvočíslo. Důvod je matematický – pokud bychom 1 za prvočíslo považovali, ztratila by platnost věta o jednoznačném rozkladu na prvočinitele.
Je 2 prvočíslo? Ano. Číslo 2 je nejmenší a zároveň jediné sudé prvočíslo. Všechna ostatní sudá čísla jsou dělitelná dvěma, tedy složená.
Kolik prvočísel existuje? Nekonečně mnoho. Euklidés to dokázal kolem roku 300 př. n. l. elegantním důkazem sporem: předpokládejme, že existuje konečně mnoho prvočísel. Jejich součin + 1 pak nemůže být dělitelný žádným z nich – tedy je to nové prvočíslo, spor.
Co jsou dvojčata prvočísel? Dvojčata prvočísel jsou páry prvočísel lišící se o 2, například (3, 5), (11, 13), (17, 19), (41, 43). Zda jich existuje nekonečně mnoho, je dodnes nevyřešenou otázkou matematiky (Domněnka o prvočíselných dvojčatech).
Jak rychle algoritmus pracuje? Eratosthenovo síto má časovou složitost O(n log log n). Pro rozsah do 10 milionů proběhne výpočet v prohlížeči typicky pod 100 ms.