素因数分解・最大公約数(GCD)・最小公倍数(LCM)計算
整数を素数の積に分解して、約数の一覧・個数・総和、素数かどうかを表示します。複数の整数を入力すれば、最大公約数と最小公倍数も求められます。JavaScriptの通常の数値では扱えない大きな整数も、BigIntで正確に計算します。比を約分したいときは 割合・比率計算機、2進数・16進数への変換は 進数変換 をご利用ください。
🔒 ブラウザ内で完結・入力データはサーバーに送信されません
注意事項
- 素因数分解は、小さな素数による試し割りと Pollard の rho 法・Miller-Rabin 法で行います。大きな素因数を2つ以上含む巨大な整数(目安として十数桁ずつの素数の積)は、時間内に終わらない場合があります。その場合は「分解できませんでした」と表示し、不完全な結果は出しません。
- 入力できるのは 1 以上の整数で、最大 60 桁です。0・負数・小数はエラーになります。素因数分解では 1 も素因数を持たないためエラーにしています。
- 桁区切りのカンマは、素因数分解の入力では無視されます。最大公約数・最小公倍数の入力ではカンマが区切り文字になるため、桁区切りは使わないでください(1,000 は 1 と 000 の2つに読まれ、000 はエラーになります)。
- 約数の個数が 5000 を超える場合は、一覧を省略して個数と総和だけを表示します。
- 素因数分解の結果の「^」は累乗です(2^3 = 2×2×2)。
用語解説
素因数分解
1より大きい整数を、素数だけの積として表すことです。順序を除けば、どの整数も一通りの表し方に決まります(360 = 2^3 × 3^2 × 5)。
最大公約数(GCD)・最小公倍数(LCM)
複数の整数に共通する約数のうち最大のものが最大公約数、共通する倍数のうち最小のものが最小公倍数です。2つの整数 a, b では a × b = GCD × LCM が成り立ちます。
互いに素
最大公約数が1である整数の組のことです。共通する素因数を持たないため、分数 a/b はこれ以上約分できません。
約数の個数と総和
素因数分解が p^a × q^b × … のとき、約数の個数は (a+1)(b+1)… 個です。総和は各素数について 1 + p + … + p^a を求めて掛け合わせます。
よくある質問
何桁の整数まで素因数分解できますか?
入力は60桁までです。ただし、実際に分解できるかは数の中身で決まります。小さな素因数が多い数は60桁でも一瞬ですが、十数桁ずつの大きな素数2つの積のような数は、ブラウザ上では時間内に終わらないことがあります。その場合は「分解できませんでした」と表示し、不完全な結果は出しません。
1 や 0 を入力するとエラーになるのはなぜですか?
0 は素因数分解の対象になりません。1 は素数でも合成数でもなく、素因数を持たないため、2以上の整数だけを受け付けています。最大公約数・最小公倍数の計算でも、0 は最小公倍数が定義しにくいため扱いません。
最大公約数・最小公倍数は3つ以上の数でも求められますか?
求められます。カンマ・空白・改行で区切って2つ以上(最大1000個)の整数を入力してください。最小公倍数は途中で大きくなっても BigInt で正確に計算します。桁区切りのカンマは区切り文字と区別できないので使えません。
約数の一覧が表示されないことがあるのはなぜですか?
約数の個数が5000個を超える数では、一覧が非常に長くなるため省略し、個数と総和だけを表示します。素因数分解の結果から、個数は (指数+1) の積で求められます。
素数の判定結果は確実ですか?
約3.3×10^24 未満の数は、決定的に動作する Miller-Rabin 法で確実に判定します。それ以上の数に含まれる素因数は確率的な判定になり、その場合は画面に注意を表示します。誤判定の確率は実用上無視できる小ささです。
このページをシェア
