Online Primtalsgenerator – Find, generer, list primtal
Hvad er et primtal?
Et primtal er et naturligt tal større end 1, der kun kan deles med 1 og sig selv. De mindste primtal er 2, 3, 5, 7, 11, 13, 17, 19, 23, 29… Tallet 2 er det eneste lige primtal – alle andre lige tal er delelige med to.
Tal som 4 (= 2 × 2), 6 (= 2 × 3) eller 15 (= 3 × 5) er ikke primtal – vi kalder dem sammensatte tal.
Hvordan fungerer generatoren?
For at liste alle primtal i et interval bruger vi Eratosthenes’ si – en af de ældste og mest effektive algoritmer, beskrevet af den græske matematiker Eratosthenes fra Kyrene omkring år 240 f.Kr.
Algoritmen fjerner successivt multipla af hvert fundne primtal. Hvad der er tilbage, er primtal. Hele beregningen foregår direkte i din browser – ingen data sendes til serveren.
Til tilfældigt udvalg opbygger generatoren først en liste over alle primtal i intervallet og vælger derefter tilfældigt det ønskede antal derfra ved hjælp af en kryptografisk sikker generator (crypto.getRandomValues()).
Generatorfunktioner
- Alle primtal – viser hvert primtal i det angivne interval (maks. 10.000)
- Tilfældigt udvalg – vælger N tilfældige primtal fra intervallet (velegnet til store intervaller)
- Sortering – sorter resultaterne i stigende rækkefølge
- Separator – vælg, hvordan tallene adskilles ved kopiering
- Hurtige forudindstillinger – de mest almindelige intervaller med et enkelt klik
Hvor bruges primtal?
Kryptografi og sikkerhed
Primtal er grundlaget for moderne kryptografi. Algoritmer som RSA fungerer ud fra princippet om, at produktet af to store primtal er let at beregne, men den omvendte dekomponering til primfaktorer er beregningsmæssigt meget krævende.
- RSA-kryptering – nøgler genereres fra to store primtal
- Diffie-Hellman – nøgleudveksling over en primtalsmodul
- Hashfunktioner – primtal som magiske konstanter (SHA, MD5)
Matematik og videnskab
- Talteori – grundlæggende byggesten i hele tal
- Goldbachs formodning – ethvert lige tal > 2 kan udtrykkes som summen af to primtal (stadig udokumenteret)
- Riemann-hypotesen – et af Hilberts problemer, vedrører fordelingen af primtal
Praktisk anvendelse
- Hashtabeller – en tabelstørrelse som et primtal reducerer kollisioner
- Pseudotilfældige talgeneratorer – lineære kongruenser med en primtalsmodul
- Musik og rytme – polyrytmer med primtals cykluslængder
Primtalfordeling
Primtal er uregelmæssigt fordelt blandt de naturlige tal, men deres tæthed falder med stigende interval. Dette beskrives af Primtalssætningen: antallet af primtal op til N er cirka N / ln(N).
| Interval | Antal primtal |
|---|---|
| 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 |
Eratosthenes’ si trin for trin
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. Vælg 2, fjern multipla: 4, 6, 8, 10, 12...
2. Vælg 3, fjern multipla: 9, 15, 21, 27...
3. Vælg 5, fjern multipla: 25...
4. √30 ≈ 5.5 → færdig
Primtal: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29
Eratosthenes’ si i kode
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