素因数分解

整数を素因数に分解し、約数を一覧にし、素数かどうかを判定します。

すべてブラウザ内で動作します。アップロード、記録、保存は一切行いません。

2から1兆まで。

素因数分解

2^3 × 3^2 × 5

素数?
いいえ
異なる素因数
3
約数の個数
24
約数
1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 18, 20, 24, 30, 36, 40, 45, 60, 72, 90, 120, 180, 360

1より大きいすべての整数は素数の積であり、その積の表し方はただ1通りです。これが算術の基本定理です。このツールはその積を求め、そこから導かれるすべて、つまり約数がいくつあり、それが何かを示します。

仕組み

試し割りに、近道を1つ加えています。2と3を取り除いたあと、残りの素数はすべて6の倍数のすぐ隣にあるので、候補を2ずつではなく6ずつ進めます。ふるいを通り抜けて残ったものは素数で、最後の因数になります。

約数はn以下のすべての数を試すのではなく、素因数分解から組み立てます。2³ × 3² × 5と書ける数の約数は(3+1) × (2+1) × (1+1) = 24個で、どの約数も各素数をいくつ取るかの選び方1つに対応するので、素因数分解がわかれば一覧にするのに手間はかかりません。

上限は1兆です。試し割りは最大でその数の平方根まで進めればよく、1兆なら100万回の手順なので高速です。それを超えると、たまたま大きな素数2つの積だった数でページが1分間読み込み続けることになるため、処理を断ります。

例

ケース 入力 結果
約数の多い数 360 2³ × 3² × 5:約数24個
素数 97 97:素数、約数2個
2の累乗 1024 2¹⁰:約数11個

よくある質問

1ではなく2から始まるのはなぜですか?

1には素因数分解がなく、1を素数と呼ぶと、この分野全体が拠って立つ一意性が崩れるからです。1が素数なら、6は2 × 3でもあり、1 × 2 × 3でも1 × 1 × 2 × 3でもあることになり、答えが1つではなくなります。0はさらに厄介で、すべての数が0を割り切ります。

ある数の約数はいくつありますか?

素因数分解の各指数に1を足して掛け合わせます。360は2³ × 3² × 5なので、4 × 3 × 2 = 24個です。素数の約数は2個(自分自身と1)で、平方数の約数は常に奇数個です。約数の1つが自分自身とペアになるからです。

なぜ上限があるのですか?

試し割りは、そうでなくなるまでは正確で高速です。最悪のケースは平方根に近い2つの素数の積で、ここでの上限は、そのケースでもページの読み込み時間内に答えが返る範囲に設定しています。断られれば何が起きたかがわかりますが、タイムアウトでは何もわかりません。

暗号鍵はこうやって破られるのですか?

いいえ、そこがポイントです。RSAは数百桁の数を素因数分解することの難しさに依拠しています。そうした数に試し割りを行えば、宇宙の寿命より長くかかります。もっと優れた方法は存在しますが、それでも遠く及ばず、だからこそこの仕組みが成り立っているのです。

知っておきたいこと

  • 約数は64個まではすべて一覧にし、それを超えると個数だけを表示します。900個の数が並んだページを読む人はいないからです。

数学のすべてのツール