Gjenerator Numrash të Thjeshtë Online
Ç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).
| Intervali | Numri i numrave të thjeshtë |
|---|---|
| 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 |
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