素因数分解計算ツール

展開形
次へ

2以上の正の整数を入力すると、素因数に分解します。重複する因数をすべて並べた形と、指数を使った簡潔な形を表示します。単純な試し割り法を用いており、約数をすべて列挙したり、高度な素因数分解アルゴリズムを使ったりはしません。

素因数分解の仕組み

  1. 1

    整数を入力

    10進数字だけを使い、2以上の値を入力します。

  2. 2

    小さい因数で割る

    まず2で試し、その後は候補が残りの値の平方根を超えない範囲で整数を順番に試します。

  3. 3

    重複する因数を記録

    割り切れるたびにその因数を記録し、商に対して処理を続けます。

  4. 4

    2つの形式で表示

    360の場合、展開形は2 × 2 × 2 × 3 × 3 × 5、指数表記は2^3 × 3^2 × 5です。

計算例

入力 展開形 指数表記
12 2 × 2 × 3 2^2 × 3
60 2 × 2 × 3 × 5 2^2 × 3 × 5
84 2 × 2 × 3 × 7 2^2 × 3 × 7
97 97 97
1024 2 × 2 × 2 × 2 × 2 × 2 × 2 × 2 × 2 × 2 2^10

入力と処理性能の制限

  • 空欄、符号、小数点、空白、2未満の値は素因数分解できません。負の整数を絶対値に変換することもありません。
  • 計算にはPHPの整数型を使います。ブラウザで表現または表示できても、サーバーの整数範囲を超える値には対応していません。
  • 小さい因数を持たない大きな値では、試し割りに時間がかかることがあります。Pollard rho法などの高速な代替手段はありません。
  • 出力されるのは素因数だけです。すべての約数は計算しません。

データの取り扱い

通常のフォームはサーバー連携のため、入力した数値は更新時にサーバーへ送信されます。2段階表示では、結果画面へ引き渡すため数値がページのURLに含まれます。非公開または秘密の入力として扱わないでください。

よくある質問

どちらもこの計算ツールが対象とする素因数分解の結果を持たないため、2以上の整数を入力するよう案内します。

いいえ。正の絶対値を自分で入力してください。この計算ツールは数字だけで表された2以上の値を受け付けます。

その素数自体が、どちらの出力形式でも唯一の因数として表示されます。

サーバーのPHP整数型に収まる必要があります。ただし試し割りの反復回数が多くなるため、実用上の処理速度の限界は数値上の限界より大幅に小さい場合があります。

関連ツール

このツールは他の言語でも利用できます