Online algarvude generaator
Mis on algarv?
Algarv on naturaalarv, mis on suurem kui 1 ja jagub ainult ühe ja iseendaga. Väikseimad algarvud on 2, 3, 5, 7, 11, 13, 17, 19, 23, 29… Arv 2 on ainuke paaris algarv – kõik teised paarisarvud jaguvad kahega.
Arvud nagu 4 (= 2 × 2), 6 (= 2 × 3) või 15 (= 3 × 5) ei ole algarvud – neid nimetatakse kordarvudeks.
Kuidas generaator töötab?
Kõigi algarvude leidmiseks antud vahemikus kasutame Eratosthenese sõela – üht vanimat ja tõhusaimat algoritmi, mille kirjeldas Kreeka matemaatik Eratosthenes Küreenest umbes aastal 240 eKr.
Algoritm kustutab järk-järgult iga leitud algarvu kordused. See, mis alles jääb, on algarvud. Kogu arvutus toimub otse teie brauseris – serverisse andmeid ei saadeta.
Juhusliku valiku jaoks koostab generaator esmalt nimekirja kõigist vahemiku algarvudest ja seejärel valib sealt juhuslikult soovitud arvu krüptograafiliselt turvalise generaatori (crypto.getRandomValues()) abil.
Generaatori funktsioonid
- Kõik algarvud – loetleb iga algarvu antud vahemikus (max 10 000)
- Juhuslik valik – valib vahemikust N juhuslikku algarvu (sobib suurte vahemike jaoks)
- Sorteerimine – sorteeri tulemused kasvavalt
- Eraldaja – vali, kuidas numbrid kopeerimisel eraldatakse
- Kiiread eelseaded – levinuimad vahemikud ühe klõpsuga
Kus algarve kasutatakse?
Krüptograafia ja turvalisus
Algarvud on kaasaegse krüptograafia aluseks. Algoritmid nagu RSA toimivad põhimõttel, et kahe suure algarvu korrutist on lihtne arvutada, kuid tagurpidi algteguriteks jaotamine on arvutuslikult väga keeruline.
- RSA krüpteerimine – võtmed genereeritakse kahest suurest algarvust
- Diffie-Hellman – võtmevahetus algarvulise mooduli abil
- Räsifunktsioonid – algarvud maagiliste konstantidena (SHA, MD5)
Matemaatika ja teadus
- Arvuteooria – täisarvude põhilised ehitusplokid
- Goldbachi hüpotees – iga paarisarv > 2 saab väljendada kahe algarvu summana (siiani tõestamata)
- Riemanni hüpotees – üks Hilberti probleemidest, käsitleb algarvude jaotumist
Praktiline kasutus
- Räsitabelid – tabeli suurus algarvuna vähendab kokkupõrkeid
- Pseudojuhuslike arvude generaatorid – lineaarsed kongruentsid algarvulise mooduliga
- Muusika ja rütm – polürütmid algarvuliste tsüklipikkustega
Algarvude jaotus
Algarvud on naturaalarvude seas ebaregulaarselt jaotunud, kuid nende tihedus väheneb vahemiku kasvades. Seda kirjeldab Algarvuteoreem: algarvude arv kuni N on ligikaudu N / ln(N).
| Vahemik | Algarvude arv |
|---|---|
| 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 |
Eratosthenese sõel samm-sammult
Vahemik 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. Vali 2, kriipsuta läbi kordsed: 4, 6, 8, 10, 12...
2. Vali 3, kriipsuta läbi kordsed: 9, 15, 21, 27...
3. Vali 5, kriipsuta läbi kordsed: 25...
4. √30 ≈ 5.5 → valmis
Algarvud: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29
Eratosthenese sõel koodis
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