# Pirmskaitļu ģenerators

> Atrodiet visus pirmskaitļus dotajā diapazonā vai izvēlieties N nejaušus. Izmanto Eratostena sietu tūlītējiem aprēķiniem tieši pārlūkprogrammā, bez servera.

URL: https://acrafto.com/lv/primskaitlu-generators/

Tools are interactive browser apps; there is no public API, no endpoints to call and no server-side processing. To use a tool, open its HTML page in a browser.

## Kas ir pirmskaitlis?

**Pirmskaitlis** ir dabisks skaitlis, kas lielāks par 1 un ir dalāms tikai ar 1 un sevi pašu. Mazākie pirmskaitļi ir 2, 3, 5, 7, 11, 13, 17, 19, 23, 29… Skaitlis 2 ir vienīgais pāra pirmskaitlis – visi pārējie pāra skaitļi ir dalāmi ar divi.

Skaitļi, piemēram, 4 (= 2 × 2), 6 (= 2 × 3) vai 15 (= 3 × 5), **nav** pirmskaitļi – tos sauc par saliktiem skaitļiem.

## Kā darbojas ģenerators?

Lai uzskaitītu visus pirmskaitļus diapazonā, mēs izmantojam **Eratostena sietu** – vienu no senākajiem un efektīvākajiem algoritmiem, ko aprakstīja grieķu matemātiķis Eratostens no Kirēnas ap 240. gadu p.m.ē.

Algoritms pakāpeniski izsvītro katra atrastā pirmskaitļa reizinājumus. Atlikušie ir pirmskaitļi. Visi aprēķini notiek **tieši jūsu pārlūkprogrammā** – nekādi dati netiek sūtīti uz serveri.

Nejaušai izlasei ģenerators vispirms sastāda visu pirmskaitļu sarakstu diapazonā un pēc tam no tā nejauši izvēlas nepieciešamo skaitu, izmantojot kriptogrāfiski drošu ģeneratoru (`crypto.getRandomValues()`).

## Ģeneratora funkcijas

- **Visi pirmskaitļi** – uzskaita katru pirmskaitli dotajā diapazonā (maks. 10 000)
- **Nejauša izlase** – izvēlas N nejaušus pirmskaitļus no diapazona (piemērots lieliem diapazoniem)
- **Kārtošana** – kārtojiet rezultātus augošā secībā
- **Atdalītājs** – izvēlieties, kā skaitļi tiks atdalīti, kopējot
- **Ātrie iestatījumi** – visbiežāk izmantotie diapazoni ar vienu klikšķi

## Kur tiek izmantoti pirmskaitļi?

### Kriptogrāfija un drošība

Pirmskaitļi ir mūsdienu kriptogrāfijas pamatā. Algoritmi, piemēram, **RSA**, darbojas pēc principa, ka divu lielu pirmskaitļu reizinājumu ir viegli aprēķināt, bet atpakaļejoša sadalīšana pirmskaitļu reizinātājos ir skaitļošanas ziņā ļoti sarežģīta.

- **RSA šifrēšana** – atslēgas tiek ģenerētas no diviem lieliem pirmskaitļiem
- **Diffie-Hellman** – atslēgu apmaiņa virs pirmskaitļa moduļa
- **Jaukšanas funkcijas** – pirmskaitļi kā maģiskas konstantes (SHA, MD5)

### Matemātika un zinātne

- **Skaitļu teorija** – veselo skaitļu pamatbloki
- **Goldbaha hipotēze** – katru pāra skaitli > 2 var izteikt kā divu pirmskaitļu summu (vēl nav pierādīta)
- **Rīmaņa hipotēze** – viena no Hilberta problēmām, attiecas uz pirmskaitļu sadalījumu

### Praktiskais pielietojums

- **Jauktabulas** – tabulas lielums kā pirmskaitlis samazina kolīzijas
- **Pseidonejaušo skaitļu ģeneratori** – lineāra kongruence ar pirmskaitļa moduli
- **Mūzika un ritms** – poliritmi ar pirmskaitļu ciklu garumiem

## Pirmskaitļu sadalījums

Pirmskaitļi starp dabiskajiem skaitļiem ir izvietoti neregulāri, bet to blīvums samazinās, palielinoties diapazonam. To apraksta **Pirmskaitļu teorēma**: pirmskaitļu skaits līdz N ir aptuveni N / ln(N).

| Diapazons | Pirmskaitļu skaits |
| --- | --- |
| 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 |

## Eratostena siets soli pa solim

```
Diapazons 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. Izvēlies 2, izsvītro reizinājumus: 4, 6, 8, 10, 12...
2. Izvēlies 3, izsvītro reizinājumus: 9, 15, 21, 27...
3. Izvēlies 5, izsvītro reizinājumus: 25...
4. √30 ≈ 5.5 → pabeigts

Pirmskaitļi: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29
```

## Eratostena siets 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
```

## Biežāk uzdotie jautājumi (BUJ)

### Vai 1 ir pirmskaitlis?

Nē. Skaitlis 1 tradicionāli netiek uzskatīts par pirmskaitli. Iemesls ir matemātisks – ja mēs uzskatītu 1 par pirmskaitli, tad vairs nebūtu spēkā teorēma par unikālu sadalījumu pirmskaitļu reizinātājos.

### Vai 2 ir pirmskaitlis?

Jā. Skaitlis 2 ir mazākais un vienīgais pāra pirmskaitlis. Visi pārējie pāra skaitļi ir dalāmi ar divi, tātad salikti.

### Cik pirmskaitļu pastāv?

Bezgalīgi daudz. Eiklīds to pierādīja ap 300. gadu p.m.ē. ar elegantu pretrunu pierādījumu: pieņemsim, ka pastāv galīgs skaits pirmskaitļu. To reizinājums + 1 tad nevar būt dalāms ne ar vienu no tiem – tātad tas ir jauns pirmskaitlis, pretruna.

### Kas ir pirmskaitļu dvīņi?

Pirmskaitļu dvīņi ir pirmskaitļu pāri, kas atšķiras par 2, piemēram, (3, 5), (11, 13), (17, 19), (41, 43). Vai to ir bezgalīgi daudz, joprojām ir neatrisināts jautājums matemātikā (Pirmskaitļu dvīņu hipotēze).

### Cik ātri darbojas algoritms?

Eratostena sietam ir laika sarežģītība O(n log log n). Diapazonā līdz 10 miljoniem aprēķins pārlūkprogrammā parasti tiek veikts mazāk nekā 100 ms laikā.

## Other languages

- Čeština (cs): [Generátor prvočísel](https://acrafto.com/cs/generator-prvocisel/) ([Markdown](https://acrafto.com/cs/generator-prvocisel/index.md))
- Slovenčina (sk): [Generátor prvočísel](https://acrafto.com/sk/generator-prvocisel/) ([Markdown](https://acrafto.com/sk/generator-prvocisel/index.md))
- English (en): [Prime Number Generator](https://acrafto.com/en/prime-number-generator/) ([Markdown](https://acrafto.com/en/prime-number-generator/index.md))
- Deutsch (de): [Primzahlgenerator](https://acrafto.com/de/online-primzahl-generator/) ([Markdown](https://acrafto.com/de/online-primzahl-generator/index.md))
- Français (fr): [Générateur de nombres premiers](https://acrafto.com/fr/generateur-nombres-premiers/) ([Markdown](https://acrafto.com/fr/generateur-nombres-premiers/index.md))
- Español (es): [Generador de números primos](https://acrafto.com/es/generador-numeros-primos-online/) ([Markdown](https://acrafto.com/es/generador-numeros-primos-online/index.md))
- Italiano (it): [Generatore di numeri primi](https://acrafto.com/it/generatore-numeri-primi/) ([Markdown](https://acrafto.com/it/generatore-numeri-primi/index.md))
- Português (pt): [Gerador de números primos](https://acrafto.com/pt/gerador-numeros-primos-online/) ([Markdown](https://acrafto.com/pt/gerador-numeros-primos-online/index.md))
- Nederlands (nl): [Priemgetallengenerator](https://acrafto.com/nl/online-priemgetalgenerator/) ([Markdown](https://acrafto.com/nl/online-priemgetalgenerator/index.md))
- Polski (pl): [Generator liczb pierwszych](https://acrafto.com/pl/generator-liczb-pierwszych/) ([Markdown](https://acrafto.com/pl/generator-liczb-pierwszych/index.md))
- Română (ro): [Generator numere prime](https://acrafto.com/ro/generator-numere-prime-online/) ([Markdown](https://acrafto.com/ro/generator-numere-prime-online/index.md))
- Magyar (hu): [Prímszám generátor](https://acrafto.com/hu/primszam-generator/) ([Markdown](https://acrafto.com/hu/primszam-generator/index.md))
- Ελληνικά (el): [Γεννήτρια πρώτων αριθμών](https://acrafto.com/el/gennitria-proton-arithmon-online/) ([Markdown](https://acrafto.com/el/gennitria-proton-arithmon-online/index.md))
- Български (bg): [Генератор на прости числа](https://acrafto.com/bg/generator-na-prosti-chisla-onlajn/) ([Markdown](https://acrafto.com/bg/generator-na-prosti-chisla-onlajn/index.md))
- Hrvatski (hr): [Generator prostih brojeva](https://acrafto.com/hr/generator-prostih-brojeva-online/) ([Markdown](https://acrafto.com/hr/generator-prostih-brojeva-online/index.md))
- Slovenščina (sl): [Generator praštevil](https://acrafto.com/sl/generator-prastevil/) ([Markdown](https://acrafto.com/sl/generator-prastevil/index.md))
- Eesti (et): [Algarvude generaator](https://acrafto.com/et/algarvude-generaator/) ([Markdown](https://acrafto.com/et/algarvude-generaator/index.md))
- Lietuvių (lt): [Pirminių skaičių generatorius](https://acrafto.com/lt/pirminiu-skaiciu-generatorius/) ([Markdown](https://acrafto.com/lt/pirminiu-skaiciu-generatorius/index.md))
- Svenska (sv): [Primtalsgenerator](https://acrafto.com/sv/primtalsgenerator-online/) ([Markdown](https://acrafto.com/sv/primtalsgenerator-online/index.md))
- Dansk (da): [Primtalsgenerator](https://acrafto.com/da/primtal-generator-online/) ([Markdown](https://acrafto.com/da/primtal-generator-online/index.md))
- Suomi (fi): [Alkulukugeneraattori](https://acrafto.com/fi/alkuluku-generaattori/) ([Markdown](https://acrafto.com/fi/alkuluku-generaattori/index.md))
- Norsk (no): [Primtallsgenerator](https://acrafto.com/no/primtallsgenerator/) ([Markdown](https://acrafto.com/no/primtallsgenerator/index.md))
- Українська (uk): [Генератор простих чисел](https://acrafto.com/uk/generator-prostyh-chysel/) ([Markdown](https://acrafto.com/uk/generator-prostyh-chysel/index.md))
- Русский (ru): [Генератор простых чисел](https://acrafto.com/ru/generator-prostykh-chisel-onlayn/) ([Markdown](https://acrafto.com/ru/generator-prostykh-chisel-onlayn/index.md))
- Српски (sr): [Generator prostih brojeva](https://acrafto.com/sr/generator-prostih-brojeva-online/) ([Markdown](https://acrafto.com/sr/generator-prostih-brojeva-online/index.md))
- Македонски (mk): [Генератор на прости броеви](https://acrafto.com/mk/generator-na-prosti-broevi/) ([Markdown](https://acrafto.com/mk/generator-na-prosti-broevi/index.md))
- Bosanski (bs): [Generator prostih brojeva](https://acrafto.com/bs/generator-prostih-brojeva/) ([Markdown](https://acrafto.com/bs/generator-prostih-brojeva/index.md))
- Shqip (sq): [Gjenerator numrash të thjeshtë](https://acrafto.com/sq/gjenerator-numrash-te-thjeshte/) ([Markdown](https://acrafto.com/sq/gjenerator-numrash-te-thjeshte/index.md))
- Türkçe (tr): [Asal sayı bulucu](https://acrafto.com/tr/asal-sayi-olusturucu/) ([Markdown](https://acrafto.com/tr/asal-sayi-olusturucu/index.md))
- 日本語 (ja): [素数一覧・生成ツール](https://acrafto.com/ja/online-prime-number-generator/) ([Markdown](https://acrafto.com/ja/online-prime-number-generator/index.md))
- 한국어 (ko): [소수 구하기](https://acrafto.com/ko/prime-number-generator/) ([Markdown](https://acrafto.com/ko/prime-number-generator/index.md))
- العربية (ar): [مولد الأعداد الأولية](https://acrafto.com/ar/prime-number-generator/) ([Markdown](https://acrafto.com/ar/prime-number-generator/index.md))
- हिन्दी (hi): [अभाज्य संख्या जनरेटर](https://acrafto.com/hi/prime-generator/) ([Markdown](https://acrafto.com/hi/prime-generator/index.md))
- Bahasa Indonesia (id): [Generator bilangan prima](https://acrafto.com/id/generator-bilangan-prima-online/) ([Markdown](https://acrafto.com/id/generator-bilangan-prima-online/index.md))
- Tiếng Việt (vi): [Trình tạo số nguyên tố](https://acrafto.com/vi/bo-tao-so-nguyen-to-truc-tuyen/) ([Markdown](https://acrafto.com/vi/bo-tao-so-nguyen-to-truc-tuyen/index.md))
- ไทย (th): [หาจำนวนเฉพาะ](https://acrafto.com/th/prime-number-generator/) ([Markdown](https://acrafto.com/th/prime-number-generator/index.md))
- עברית (he): [מחולל מספרים ראשוניים](https://acrafto.com/he/prime-number-generator/) ([Markdown](https://acrafto.com/he/prime-number-generator/index.md))
