Generator de Numere Prime Online
Ce este un număr prim?
Un număr prim este un număr natural mai mare decât 1 care este divizibil doar cu 1 și cu el însuși. Cele mai mici numere prime sunt 2, 3, 5, 7, 11, 13, 17, 19, 23, 29… Numărul 2 este singurul număr prim par – toate celelalte numere pare sunt divizibile cu doi.
Numerele precum 4 (= 2 × 2), 6 (= 2 × 3) sau 15 (= 3 × 5) nu sunt numere prime – le numim numere compuse.
Cum funcționează generatorul?
Pentru a lista toate numerele prime dintr-un interval, folosim ciurul lui Eratostene – unul dintre cei mai vechi și mai eficienți algoritmi, descris de matematicianul grec Eratostene din Cirene în jurul anului 240 î.Hr.
Algoritmul elimină succesiv multiplii fiecărui număr prim găsit. Ceea ce rămâne sunt numerele prime. Întregul calcul se efectuează direct în browserul dumneavoastră – nu sunt trimise date către server.
Pentru selecția aleatorie, generatorul construiește mai întâi o listă cu toate numerele prime din interval și apoi selectează aleatoriu numărul dorit folosind un generator criptografic securizat (crypto.getRandomValues()).
Funcțiile generatorului
- Toate numerele prime – listează fiecare număr prim din intervalul specificat (max. 10.000)
- Selecție aleatorie – selectează N numere prime aleatorii din interval (potrivit pentru intervale mari)
- Sortare – sortează rezultatele în ordine crescătoare
- Separator – alegeți cum vor fi separate numerele la copiere
- Presetări rapide – cele mai comune intervale cu un singur clic
Unde se utilizează numerele prime?
Criptografie și securitate
Numerele prime sunt fundamentul criptografiei moderne. Algoritmi precum RSA funcționează pe principiul că produsul a două numere prime mari este ușor de calculat, dar descompunerea inversă în factori primi este foarte dificilă din punct de vedere computațional.
- Criptare RSA – cheile sunt generate din două numere prime mari
- Diffie-Hellman – schimb de chei peste un modul prim
- Funcții hash – numere prime ca și constante magice (SHA, MD5)
Matematică și știință
- Teoria numerelor – elementele fundamentale ale numerelor întregi
- Conjectura lui Goldbach – orice număr par > 2 poate fi exprimat ca suma a două numere prime (încă nedemonstrată)
- Ipoteza lui Riemann – una dintre problemele lui Hilbert, referitoare la distribuția numerelor prime
Utilizări practice
- Tabele hash – dimensiunea tabelului ca număr prim reduce coliziunile
- Generatoare de numere pseudo-aleatoare – congruență liniară cu un modul prim
- Muzică și ritm – poliritmuri cu lungimi de ciclu prime
Distribuția numerelor prime
Numerele prime sunt distribuite neregulat printre numerele naturale, dar densitatea lor scade pe măsură ce intervalul crește. Acest lucru este descris de Teorema numerelor prime: numărul de numere prime până la N este aproximativ N / ln(N).
| Interval | Număr de numere prime |
|---|---|
| 1–10 | 4 |
| 1–100 | 25 |
| 1–1 000 | 168 |
| 1–10 000 | 1 229 |
| 1–100 000 | 9 592 |
| 1–1 000 000 | 78 498 |
Ciurul lui Eratostene pas cu pas
Interval 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. Selectează 2, taie multiplii: 4, 6, 8, 10, 12...
2. Selectează 3, taie multiplii: 9, 15, 21, 27...
3. Selectează 5, taie multiplii: 25...
4. √30 ≈ 5.5 → gata
Numere prime: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29
Ciurul lui Eratostene în cod
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