Generatore di Numeri Primi Online

Preset rapidi:
Separatore per la copia

Cos’è un numero primo?

Un numero primo è un numero naturale maggiore di 1 che è divisibile solo per 1 e per se stesso. I numeri primi più piccoli sono 2, 3, 5, 7, 11, 13, 17, 19, 23, 29… Il numero 2 è l’unico numero primo pari; tutti gli altri numeri pari sono divisibili per due.

Numeri come 4 (= 2 × 2), 6 (= 2 × 3) o 15 (= 3 × 5) non sono numeri primi; li chiamiamo numeri composti.

Come funziona il generatore?

Per elencare tutti i numeri primi in un intervallo, utilizziamo il Crivello di Eratostene – uno degli algoritmi più antichi ed efficaci, descritto dal matematico greco Eratostene di Cirene intorno al 240 a.C.

L’algoritmo elimina progressivamente i multipli di ogni numero primo trovato. Ciò che rimane sono i numeri primi. L’intero calcolo avviene direttamente nel tuo browser – nessun dato viene inviato al server.

Per la selezione casuale, il generatore crea prima un elenco di tutti i numeri primi nell’intervallo e quindi ne seleziona casualmente il numero desiderato utilizzando un generatore crittograficamente sicuro (crypto.getRandomValues()).

Funzionalità del generatore

  • Tutti i numeri primi – elenca ogni numero primo nell’intervallo specificato (max 10.000)
  • Selezione casuale – seleziona N numeri primi casuali dall’intervallo (adatto per intervalli grandi)
  • Ordinamento – ordina i risultati in ordine crescente
  • Separatore – scegli come i numeri saranno separati durante la copia
  • Preset rapidi – gli intervalli più comuni con un solo clic

Dove vengono utilizzati i numeri primi?

Crittografia e sicurezza

I numeri primi sono la base della crittografia moderna. Algoritmi come RSA funzionano sul principio che il prodotto di due grandi numeri primi è facile da calcolare, ma la scomposizione inversa in fattori primi è computazionalmente molto difficile.

  • Crittografia RSA – le chiavi sono generate da due grandi numeri primi
  • Diffie-Hellman – scambio di chiavi su un modulo primo
  • Funzioni hash – numeri primi come costanti magiche (SHA, MD5)

Matematica e scienza

  • Teoria dei numeri – elementi costitutivi fondamentali degli interi
  • Congettura di Goldbach – ogni numero pari > 2 può essere espresso come la somma di due numeri primi (ancora non dimostrato)
  • Ipotesi di Riemann – uno dei problemi di Hilbert, riguarda la distribuzione dei numeri primi

Usi pratici

  • Tabelle hash – la dimensione della tabella come numero primo riduce le collisioni
  • Generatore di numeri pseudo-casuali – congruenza lineare con un modulo primo
  • Musica e ritmo – poliritmi con lunghezze di ciclo prime

Distribuzione dei numeri primi

I numeri primi sono distribuiti irregolarmente tra i numeri naturali, ma la loro densità diminuisce con l’aumentare dell’intervallo. Questo è descritto dal Teorema dei numeri primi: il numero di numeri primi fino a N è approssimativamente N / ln(N).

IntervalloNumero di numeri primi
1–104
1–10025
1–1 000168
1–10 0001 229
1–100 0009 592
1–1 000 00078 498

Il Crivello di Eratostene passo dopo passo

Intervallo 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. Seleziona 2, elimina i multipli: 4, 6, 8, 10, 12...
2. Seleziona 3, elimina i multipli: 9, 15, 21, 27...
3. Seleziona 5, elimina i multipli: 25...
4. √30 ≈ 5.5 → fatto

Numeri primi: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29

Il Crivello di Eratostene nel codice

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

Domande frequenti (FAQ)

1 è un numero primo? No. Il numero 1 non è tradizionalmente considerato un numero primo. La ragione è matematica: se considerassimo 1 un numero primo, il teorema fondamentale dell'aritmetica (scomposizione unica in fattori primi) perderebbe la sua validità.
2 è un numero primo? Sì. Il numero 2 è il numero primo più piccolo e l'unico numero primo pari. Tutti gli altri numeri pari sono divisibili per due, quindi sono numeri composti.
Quanti numeri primi esistono? Infiniti. Euclide lo dimostrò intorno al 300 a.C. con una elegante dimostrazione per assurdo: supponiamo che esista un numero finito di numeri primi. Il loro prodotto + 1 non potrebbe essere divisibile da nessuno di essi – quindi sarebbe un nuovo numero primo, una contraddizione.
Cosa sono i primi gemelli? I numeri primi gemelli sono coppie di numeri primi che differiscono di 2, ad esempio (3, 5), (11, 13), (17, 19), (41, 43). Se ne esistano infiniti è ancora una questione irrisolta in matematica (Congettura dei numeri primi gemelli).
Quanto è veloce l'algoritmo? Il Crivello di Eratostene ha una complessità temporale di O(n log log n). Per un intervallo fino a 10 milioni, il calcolo nel browser si esegue tipicamente in meno di 100 ms.