整数を素因数分解し、素数かどうかを判定する
2 以上のすべての整数は、掛ける順番の違いを除けば、素数の積としてただ一通りに表せます。これが算術の基本定理(素因数分解の一意性)です。360 = 23 × 32 × 5、1,001 = 7 × 11 × 13 であり、97 はそれ以上分解できない素数です。このツールは素因数分解の結果を示し、素数か合成数かを即座に判定し、授業で書くのと同じすだれ算(連除法)の表も表示します。
素因数分解は、分数の約分、最大公約数・最小公倍数の計算、約数の個数の数え上げ、平方根の簡単化など多くの計算の土台です。中学 1 年で素因数分解を学ぶ生徒、高校入試や数学検定の受験者、プリントを作る先生、そして暗号に興味のある人にも役立ちます。RSA 暗号の安全性は、非常に大きな数の素因数分解が難しいことに支えられています。
-
数を入力する
「素因数分解する整数」に 2 以上、18 桁までの整数を入力します。スペースや桁区切りは無視されるので、600,851,475,143 もそのまま使えます。「例:」のボタンでサンプルを読み込めます。
-
判定結果を読む
バッジに「素数」または「素数ではありません(合成数)」と表示され、その下に指数つきの分解(360 = 2³ × 3² × 5)と展開形が出ます。「コピー」ボタンで 2^3 × 3^2 × 5 をクリップボードにコピーできます。
-
性質を調べる
「整数としての性質」のカードに、τ(n)、σ(n)、φ(n)、異なる素因数の個数 ω(n) と重複を含む個数 Ω(n)、平方数かどうか、真の約数の和、直前と次の素数(10¹² まで)が表示されます。
-
手計算で確かめる
「すだれ算(連除法)」の表は 360 ÷ 2 = 180 … と商が 1 になるまで各段階を示し、「すべての約数」は約数を小さい順に並べ、素数の約数を強調表示します。
方法:算術の基本定理と公式
2 以上の整数 n の素因数分解は n = p1a1 × p2a2 × … × pkak と書けます。割り切れる最小の素数で割れるだけ割っていけば求まり、調べる約数は √n までで十分です。合成数は必ず平方根以下の素因数をもつからです。
大きな数に対しては、10,000 までの素数による試し割り、素数を見分ける決定的なミラー・ラビン判定、残った合成数を分解するポラード・ロー法(ブレント版)の 3 段階で計算します。計算はすべて正確な整数演算で、丸め誤差はありません。
- p1 < p2 < … < pk:小さい順に並べた異なる素因数。その個数を ω(n) と書きます。
- ai:pi の指数(重複度)。a1 + … + ak は Ω(n)、つまり重複を含めた素因数の個数です。
- τ(n) = (a1 + 1)(a2 + 1)…(ak + 1):約数の個数。約数は各 pi について指数を 0 から ai まで選んで作られるからです。
- σ(n) = ∏ (piai+1 − 1) / (pi − 1):すべての約数の和。s(n) = σ(n) − n により完全数・過剰数・不足数を判定します。
- φ(n) = n × ∏ (1 − 1/pi):オイラーのφ関数。1 から n までで n と互いに素な整数の個数です。
- 平方数:すべての ai が偶数のときに限り n は平方数で、√n = ∏ piai/2 となります。例:√1,024 = 25 = 32。
素因数分解の例
| 数 | 素因数分解 | τ(n) | σ(n) | φ(n) |
|---|---|---|---|---|
| 360 | 23 × 32 × 5 | 24 | 1,170 | 96 |
| 97 | 素数 | 2 | 98 | 96 |
| 1,001 | 7 × 11 × 13 | 8 | 1,344 | 720 |
| 1,024 | 210(平方数、322) | 11 | 2,047 | 512 |
| 600,851,475,143 | 71 × 839 × 1,471 × 6,857 | 16 | 610,544,148,480 | 591,194,251,200 |
| 999,999,999,999,999,989 | 素数 | 2 | n + 1 | n − 1 |
ツールの表示と同じ値です。素数 n では σ(n) = n + 1、φ(n) = n − 1 となります。97 の前後の素数は 89 と 101 です。
素因数分解はどんな場面で役立つ?
- 分数の約分:84/360 = (22 × 3 × 7)/(23 × 32 × 5) で、共通因数 22 × 3 = 12 を消すと 7/30 になります。
- 通分:360 と 84 の最小公倍数は 2,520 で、1/360 と 1/84 を足すときの最小の公分母になります。
- 平方根の簡単化:√360 = √(22 × 32 × 10) = 2 × 3 × √10 = 6√10 のように、同じ因数の組(2 乗の因数)を根号の外に出します。
- 約数の数え上げと一覧:360 脚の椅子を同じ数ずつの列に並べる方法は 24 通り(行 × 列)など、分配の問題や整数の宿題に便利です。
- 暗号とパズル:RSA は素因数分解の難しさを利用しています。有名な Project Euler の問題 3 は 600,851,475,143 の最大の素因数を問うもので、答えは 6,857 です。
よくある間違い
- 素数でない数で割る:360 を 4 や 6 で割っても商は正しいものの、分解が不完全になります。割るのは 2、3、5、7、11、13 … の素数だけです。
- 1 を素数とみなす:1 の約数は 1 つだけで、素因数分解に現れることはありません。
- 23 と 2 × 3 を混同する:23 = 2 × 2 × 2 = 8 ですが、2 × 3 = 6 です。指数は同じ因数を掛ける回数を表します。
- 「素数っぽい」数を素数と思い込む:51 = 3 × 17、91 = 7 × 13、1,001 = 7 × 11 × 13 はいずれも合成数です。必ず平方根まで調べましょう。
計算はすべてブラウザ内で正確な整数演算(BigInt)により行われ、入力した数が送信・保存されることはありません。制限:最大 18 桁。前後の素数は 1012 まで、約数の一覧は 1,000 個まで、すだれ算の表は重複を含めて素因数 40 個までを表示します。
よくある質問
1 はなぜ素数ではないのですか?
素数は「1 と自分自身」のちょうど 2 つの約数をもつ数ですが、1 の約数は 1 つしかありません。さらに 1 を素数に含めると、360 = 2³ × 3² × 5 = 1 × 2³ × 3² × 5 = 1² × 2³ × 3² × 5 … のように分解が一通りに決まらなくなります。そのため 1 は素数でも合成数でもなく、このツールでは理由を表示して受け付けません。
手計算で素因数分解するには?
割り切れる最小の素数で割り、その商をまた割る操作を 1 になるまで続けます:360 ÷ 2 = 180、180 ÷ 2 = 90、90 ÷ 2 = 45、45 ÷ 3 = 15、15 ÷ 3 = 5、5 ÷ 5 = 1。割った素数を並べると 360 = 2³ × 3² × 5 です。調べるのは平方根まででよく、√97 ≈ 9.8 なので 2、3、5、7 で割り切れなければ 97 は素数だと分かります。
素因数分解から約数の個数を求めるには?
各指数に 1 を足して掛け合わせます。360 = 2³ × 3² × 5 なら τ(360) = (3+1)(2+1)(1+1) = 24 個です。1,001 = 7 × 11 × 13 なら 2 × 2 × 2 = 8 個になります。約数の総和も同じ考え方で、σ(360) = 15 × 13 × 6 = 1,170 です。
最大公約数と最小公倍数を素因数分解で求めるには?
それぞれを素因数分解します:360 = 2³ × 3² × 5、84 = 2² × 3 × 7。最大公約数は共通の素因数を小さいほうの指数で掛け(2² × 3 = 12)、最小公倍数はすべての素因数を大きいほうの指数で掛けます(2³ × 3² × 5 × 7 = 2,520)。確認:12 × 2,520 = 30,240 = 360 × 84 です。
大きな数が素数かどうかはどう判定しますか?
平方根までの試し割りは、桁数が増えるとすぐに現実的ではなくなります。18 桁の数なら、10⁹ までのすべての素数で割ってみる必要があるからです。そこでこのツールは、最初の 12 個の素数(2 から 37)を底とするミラー・ラビン判定を使います。この判定は 3 × 10²³ 未満の数で誤りがないことが証明されているため、18 桁(10¹⁸ 未満)の範囲では「素数」という表示は確率ではなく確実な結果です。最も難しいケースである 9 桁の素数 2 つの積(999,999,929 × 999,999,937 など)も一瞬で分解できます。
オイラーのφ関数は何に使いますか?
φ(n) は 1 から n までのうち n と互いに素な整数の個数で、φ(360) = 360 × (1 − 1/2)(1 − 1/3)(1 − 1/5) = 96 です。素数 p では φ(p) = p − 1 なので、φ(97) = 96 にもなります。RSA 暗号でも使われ、n = p × q のとき φ(n) = (p − 1)(q − 1) から秘密鍵を計算します。