Primtallsgenerator online

Hurtigvalg:
Skilletegn ved kopiering

Hva er et primtall?

Et primtall er et naturlig tall større enn 1 som kun er delelig med 1 og seg selv. De minste primtallene er 2, 3, 5, 7, 11, 13, 17, 19, 23, 29… Tallet 2 er det eneste partallprimtallet – alle andre partall er delelige med to.

Tall som 4 (= 2 × 2), 6 (= 2 × 3) eller 15 (= 3 × 5) er ikke primtall – vi kaller dem sammensatte tall.

Hvordan fungerer generatoren?

For å liste alle primtall i et område bruker vi Eratosthenes’ sil – en av de eldste og mest effektive algoritmene, beskrevet av den greske matematikeren Eratosthenes fra Kyrene rundt 240 f.Kr.

Algoritmen eliminerer gradvis multipler av hvert funnet primtall. Det som blir igjen, er primtallene. Hele beregningen foregår direkte i nettleseren din – ingen data sendes til serveren.

For tilfeldig utvalg setter generatoren først sammen en liste over alle primtall i området og velger deretter tilfeldig det ønskede antallet fra den ved hjelp av en kryptografisk sikker generator (crypto.getRandomValues()).

Generatorfunksjoner

  • Alle primtall – viser hvert primtall i det angitte området (maks. 10 000)
  • Tilfeldig utvalg – velger N tilfeldige primtall fra området (egnet for store områder)
  • Sortering – sorter resultatene i stigende rekkefølge
  • Skilletegn – velg hvordan tallene skal skilles ved kopiering
  • Hurtigvalg – de vanligste områdene med ett klikk

Hvor brukes primtall?

Kryptografi og sikkerhet

Primtall er grunnlaget for moderne kryptografi. Algoritmer som RSA fungerer på prinsippet om at produktet av to store primtall er enkelt å beregne, men det er beregningsmessig svært krevende å faktorisere dem tilbake til primfaktorer.

  • RSA-kryptering – nøkler genereres fra to store primtall
  • Diffie-Hellman – nøkkelutveksling over en primtallsmodul
  • Hash-funksjoner – primtall som magiske konstanter (SHA, MD5)

Matematikk og vitenskap

  • Tallteori – de grunnleggende byggesteinene for heltall
  • Goldbachs formodning – hvert partall > 2 kan uttrykkes som summen av to primtall (fortsatt ubevist)
  • Riemann-hypotesen – et av Hilberts problemer, angår fordelingen av primtall

Praktisk bruk

  • Hash-tabeller – tabellstørrelse som et primtall reduserer kollisjoner
  • Pseudotilfeldige tallgeneratorer – lineær kongruens med en primtallsmodul
  • Musikk og rytme – polyrytmer med primtallsbaserte sykluslengder

Fordelingen av primtall

Primtall er uregelmessig fordelt blant naturlige tall, men deres tetthet avtar med økende område. Dette beskrives av Primtallsteoremet: antall primtall opp til N er omtrent N / ln(N).

OmrådeAntall primtall
1–104
1–10025
1–1 000168
1–10 0001 229
1–100 0009 592
1–1 000 00078 498

Eratosthenes’ sil trinn for trinn

Område 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. Velg 2, stryker multipler: 4, 6, 8, 10, 12...
2. Velg 3, stryker multipler: 9, 15, 21, 27...
3. Velg 5, stryker multipler: 25...
4. √30 ≈ 5.5 → ferdig

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

Eratosthenes’ sil 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

Ofte stilte spørsmål (FAQ)

Er 1 et primtall? Nei. Tallet 1 regnes tradisjonelt ikke som et primtall. Årsaken er matematisk – hvis vi skulle anse 1 som et primtall, ville teoremet om entydig primfaktorisering ikke lenger være gyldig.
Er 2 et primtall? Ja. Tallet 2 er det minste og samtidig det eneste partallprimtallet. Alle andre partall er delelige med to, og er dermed sammensatte.
Hvor mange primtall finnes? Uendelig mange. Euklid beviste dette rundt 300 f.Kr. med et elegant motbevis: anta at det finnes et endelig antall primtall. Produktet av dem + 1 kan da ikke være delelig med noen av dem – dermed er det et nytt primtall, en motsigelse.
Hva er tvillingprimtall? Tvillingprimtall er par av primtall som skiller seg med 2, for eksempel (3, 5), (11, 13), (17, 19), (41, 43). Om det finnes uendelig mange av dem, er fortsatt et uløst spørsmål i matematikken (Tvillingprimtallformodningen).
Hvor raskt fungerer algoritmen? Eratosthenes' sil har en tidskompleksitet på O(n log log n). For et område opp til 10 millioner vil beregningen i nettleseren typisk ta under 100 ms.