Gjenerator Numrash të Thjeshtë Online

Paracaktuara të shpejta:
Ndarësi gjatë kopjimit

Çfarë është një numër i thjeshtë?

Një numër i thjeshtë është një numër natyror më i madh se 1, i cili është i pjesëtueshëm vetëm me një dhe me vetveten. Numrat më të vegjël të thjeshtë janë 2, 3, 5, 7, 11, 13, 17, 19, 23, 29… Numri 2 është i vetmi numër i thjeshtë çift – të gjithë numrat e tjerë çift janë të pjesëtueshëm me dy.

Numrat si 4 (= 2 × 2), 6 (= 2 × 3) ose 15 (= 3 × 5) nuk janë numra të thjeshtë – ne i quajmë ata numra të përbërë.

Si funksionon gjeneratori?

Për të listuar të gjithë numrat e thjeshtë në një interval, ne përdorim Sitën e Eratosthenes – një nga algoritmet më të vjetra dhe më efikase, e përshkruar nga matematikani grek Eratosthenes i Kirenës rreth vitit 240 para Krishtit.

Algoritmi fshin gradualisht shumëfishat e çdo numri të thjeshtë të gjetur. Ajo që mbetet janë numrat e thjeshtë. I gjithë llogaritja kryhet drejtpërdrejt në shfletuesin tuaj – asnjë e dhënë nuk dërgohet në server.

Për zgjedhjen e rastësishme, gjeneratori fillimisht ndërton një listë të të gjithë numrave të thjeshtë në interval, dhe më pas zgjedh rastësisht numrin e dëshiruar duke përdorur një gjenerator kriptografikisht të sigurt (crypto.getRandomValues()).

Funksionet e gjeneratorit

  • Të gjithë numrat e thjeshtë – liston çdo numër të thjeshtë në intervalin e caktuar (maks. 10 000)
  • Zgjedhje e rastësishme – zgjedh N numra të thjeshtë të rastësishëm nga intervali (e përshtatshme për intervale të mëdha)
  • Renditja – renditni rezultatet në rend rritës
  • Ndarësi – zgjidhni si do të ndahen numrat gjatë kopjimit
  • Paracaktuara të shpejta – intervalet më të zakonshme me një klikim

Ku përdoren numrat e thjeshtë?

Kriptografia dhe Siguria

Numrat e thjeshtë janë themeli i kriptografisë moderne. Algoritmet si RSA funksionojnë mbi parimin se shumëzimi i dy numrave të thjeshtë të mëdhenj është i lehtë për t’u llogaritur, por zbërthimi i tyre në faktorë të thjeshtë është llogaritësisht shumë i vështirë.

  • Kriptimi RSA – çelësat gjenerohen nga dy numra të thjeshtë të mëdhenj
  • Diffie-Hellman – shkëmbimi i çelësave mbi një modul numër të thjeshtë
  • Funksionet Hash – numrat e thjeshtë si konstante magjike (SHA, MD5)

Matematika dhe Shkenca

  • Teoria e numrave – blloqet themelore ndërtuese të numrave të plotë
  • Hipoteza e Goldbach-ut – çdo numër çift > 2 mund të shprehet si shuma e dy numrave të thjeshtë (ende e paprovuar)
  • Hipoteza e Riemann-it – një nga problemet e Hilbert-it, lidhet me shpërndarjen e numrave të thjeshtë

Përdorimi Praktik

  • Tabelat Hash – madhësia e tabelës si numër i thjeshtë zvogëlon përplasjet
  • Gjeneratorët e numrave pseudo-rastësorë – kongruenca lineare me një modul numër të thjeshtë
  • Muzika dhe ritmi – poliritme me gjatësi cikli numra të thjeshtë

Shpërndarja e numrave të thjeshtë

Numrat e thjeshtë janë të shpërndarë në mënyrë të çrregullt ndër numrat natyrorë, por dendësia e tyre bie me rritjen e intervalit. Këtë e përshkruan Teorema e numrave të thjeshtë: numri i numrave të thjeshtë deri në N është afërsisht N / ln(N).

IntervaliNumri i numrave të thjeshtë
1–104
1–10025
1–1 000168
1–10 0001 229
1–100 0009 592
1–1 000 00078 498

Sita e Eratosthenes hap pas hapi

Intervali 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. Zgjedh 2, hiq shumëfishat: 4, 6, 8, 10, 12...
2. Zgjedh 3, hiq shumëfishat: 9, 15, 21, 27...
3. Zgjedh 5, hiq shumëfishat: 25...
4. √30 ≈ 5.5 → u krye

Numrat e thjeshtë: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29

Sita e Eratosthenes në kod

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

Pyetjet e Shpeshta (FAQ)

A është 1 numër i thjeshtë? Jo. Numri 1 tradicionalisht nuk konsiderohet numër i thjeshtë. Arsyeja është matematikore – nëse do ta konsideronim 1 si numër të thjeshtë, teorema e zbërthimit të vetëm në faktorë të thjeshtë do të humbiste vlefshmërinë.
A është 2 numër i thjeshtë? Po. Numri 2 është më i vogli dhe njëkohësisht i vetmi numër i thjeshtë çift. Të gjithë numrat e tjerë çift janë të pjesëtueshëm me dy, pra të përbërë.
Sa numra të thjeshtë ekzistojnë? Pafundësisht shumë. Euklidi e vërtetoi këtë rreth vitit 300 para Krishtit me një provë elegante me kontradiksion: supozojmë se ekziston një numër i kufizuar numrash të thjeshtë. Atëherë prodhimi i tyre + 1 nuk mund të jetë i pjesëtueshëm me asnjë prej tyre – pra, është një numër i ri i thjeshtë, një kontradiksion.
Çfarë janë binjakët e numrave të thjeshtë? Binjakët e numrave të thjeshtë janë çifte numrash të thjeshtë që ndryshojnë me 2, për shembull (3, 5), (11, 13), (17, 19), (41, 43). Nëse ekzistojnë pafundësisht shumë, kjo është ende një çështje e pazgjidhur në matematikë (Hipoteza e binjakëve të numrave të thjeshtë).
Sa shpejt funksionon algoritmi? Sita e Eratosthenes ka një kompleksitet kohor O(n log log n). Për një interval deri në 10 milionë, llogaritja në shfletues zakonisht kryhet në më pak se 100 ms.