素因数分解・約数計算
整数を素数の積に分解します(素因数分解)。素数かどうか、約数の個数・和・一覧も求められます。
素因数分解とは
素因数分解は、整数を素数(1 とその数自身でしか割り切れない 2 以上の整数)の積に分けることです。たとえば、360 = 2³ × 3² × 5 です。素因数分解の結果は、並べる順序を除いて、1 通りに決まります。
約数の個数と和
素因数分解が p₁^e₁ × p₂^e₂ × … のとき、
- 約数の個数 = (e₁ + 1) × (e₂ + 1) × …
- 約数の和 = (p₁^(e₁+1) − 1) ÷ (p₁ − 1) × (p₂^(e₂+1) − 1) ÷ (p₂ − 1) × …(その数自身を含みます)
360 = 2³ × 3² × 5 では、約数は (3 + 1) × (2 + 1) × (1 + 1) = 24 個、和は 15 × 13 × 6 = 1,170 です。
計算方法と上限
2、3、そのあとは 6k ± 1 の形の数で、その数の平方根まで割れるかを調べる試し割りで求めます。整数は 12 桁(999,999,999,999)までです。桁数が増えると、試し割りの時間は急に増えるため、上限を決めています。12 桁までなら、最も時間のかかる素数でも、ほとんど待たずに結果が出ます。
約数の一覧は、最初の 1,000 個を表示し、それより多いときは[すべて表示]で全部を出します。12 桁までの整数の約数は、最大でも 6,720 個です。コピーは、表示の件数にかかわらず、全件です。
特別な値
- 1 は、素数でも合成数でもありません。素因数分解は空(1)で、約数は 1 個(1)です。
- 素数の素因数分解は、その数自身です(約数は 1 とその数の 2 個)。
- 0・マイナス・小数は、入力できません。
計算例
| 入力 | 結果 |
|---|---|
| 360 | 2³ × 3² × 5。約数 24 個、和 1,170 |
| 97 | 素数。約数 2 個(1・97)、和 98 |
| 999,999,999,999 | 3³ × 7 × 11 × 13 × 37 × 101 × 9901 |
| 999,999,999,989 | 素数(12 桁以内で最大の素数) |
扱わないもの
12 桁を超える整数、大きな数の素数判定、完全数・オイラーのφ関数、素数の一覧は扱いません。複数の数の最大公約数・最小公倍数は最大公約数・最小公倍数計算で、約分は分数計算で求められます。
試し割りの方法と限界は、解説資料(Wikipedia「Integer factorization」「Trial division」)で確認しました。12 桁という上限は、このツールの設計です。
よくある質問
1 は素数ですか?
素数ではありません。素数は、1 とその数自身の 2 つの約数を持つ 2 以上の整数です。
素因数分解の結果は、1 通りですか?
並べる順序を除いて、1 通りに決まります。
大きな数を入れると、時間がかかりますか?
12 桁までの整数に限っているので、ほとんど待たずに結果が出ます。