# 素数一覧・生成ツール

> 指定された範囲内のすべての素数をリスト表示、またはN個の素数をランダムに選択。エラトステネスの篩を使用し、ブラウザで即座に計算。サーバー不要、待ち時間なし。

URL: https://acrafto.com/ja/online-prime-number-generator/

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.

## 素数とは？

**素数**とは、1より大きい自然数で、1とその数自身以外には割り切れない数のことです。最小の素数は2, 3, 5, 7, 11, 13, 17, 19, 23, 29…です。2は唯一の偶数の素数であり、他のすべての偶数は2で割り切れるため、合成数です。

4 (= 2 × 2), 6 (= 2 × 3), 15 (= 3 × 5) のような数は素数では**ありません**。これらは合成数と呼ばれます。

## ジェネレーターの仕組み

指定範囲内のすべての素数をリストアップするために、**エラトステネスの篩**を使用しています。これは紀元前240年頃にギリシャの数学者エラトステネスによって記述された、最も古く効果的なアルゴリズムの一つです。

このアルゴリズムは、見つかった各素数の倍数を順番にふるい落としていきます。残ったものが素数です。計算はすべて**ブラウザ内で直接**行われ、サーバーにデータが送信されることはありません。

ランダム選択の場合、ジェネレーターはまず範囲内のすべての素数のリストを作成し、その後、暗号学的に安全なジェネレーター（`crypto.getRandomValues()`）を使用して、そのリストから必要な数の素数をランダムに選択します。

## ジェネレーターの機能

- **すべての素数** – 指定された範囲内のすべての素数をリストアップします（最大10,000個）
- **ランダム選択** – 範囲からN個の素数をランダムに選択します（広範囲に適しています）
- **ソート** – 結果を昇順に並べ替えます
- **区切り文字** – コピー時に数値をどのように区切るかを選択します
- **クイックプリセット** – よく使う範囲をワンクリックで設定します

## 素数はどこで使われている？

### 暗号化とセキュリティ

素数は現代暗号の基礎です。**RSA**のようなアルゴリズムは、2つの大きな素数の積を計算するのは簡単ですが、その積を素因数分解して元に戻すのは計算上非常に困難であるという原理に基づいています。

- **RSA暗号** – 鍵は2つの大きな素数から生成されます
- **Diffie-Hellman** – 素数モジュロ上での鍵交換
- **ハッシュ関数** – 素数をマジック定数として使用（SHA, MD5）

### 数学と科学

- **整数論** – 整数の基本的な構成要素
- **ゴールドバッハ予想** – 2より大きいすべての偶数は2つの素数の和で表せる（未だ証明されていない）
- **リーマン予想** – ヒルベルトの23の問題の1つで、素数の分布に関するもの

### 実用的な応用

- **ハッシュテーブル** – テーブルサイズを素数にすることで衝突を減らす
- **擬似乱数生成器** – 素数モジュロを持つ線形合同法
- **音楽とリズム** – 素数周期のポリリズム

## 素数の分布

素数は自然数の中に不規則に分布していますが、その密度は範囲が大きくなるにつれて減少します。これは**素数定理**によって記述されており、Nまでの素数の数は約 N / ln(N) です。

| 範囲 | 素数の数 |
| --- | --- |
| 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 |

## エラトステネスの篩：ステップバイステップ

```
範囲 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. 2を選択し、その倍数（4, 6, 8, 10, 12...）を消去する。
2. 3を選択し、その倍数（9, 15, 21, 27...）を消去する。
3. 5を選択し、その倍数（25...）を消去する。
4. √30 ≈ 5.5 → 完了

素数: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29
```

## コードでのエラトステネスの篩

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

## よくある質問 (FAQ)

### 1は素数ですか？

いいえ。伝統的に1は素数とは見なされません。その理由は数学的で、もし1を素数とすると、素因数分解の一意性の定理が成り立たなくなってしまうからです。

### 2は素数ですか？

はい。2は最小であり、唯一の偶数の素数です。他のすべての偶数は2で割り切れるため、合成数です。

### 素数はいくつ存在しますか？

無限に存在します。ユークリッドは紀元前300年頃、背理法を用いたエレガントな証明でこれを示しました。もし素数が有限個しか存在しないと仮定すると、それらすべての素数の積に1を加えた数は、どの素数でも割り切れないため、新たな素数であることになり、矛盾が生じます。

### 双子素数とは何ですか？

双子素数とは、差が2である素数のペアのことです。例えば(3, 5), (11, 13), (17, 19), (41, 43)などがあります。双子素数が無限に存在するかどうかは、今日まで数学の未解決問題です（双子素数予想）。

### このアルゴリズムはどれくらいの速さで動作しますか？

エラトステネスの篩の時間計算量はO(n log log n)です。1,000万までの範囲では、ブラウザでの計算は通常100ミリ秒未満で完了します。

## 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))
- Latviešu (lv): [Pirmskaitļu ģenerators](https://acrafto.com/lv/primskaitlu-generators/) ([Markdown](https://acrafto.com/lv/primskaitlu-generators/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))
- 한국어 (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))
