因数分解を実装する方法については多くの質問がありますが、本番環境で使用する場合は、オープン ソース ライブラリを使用して、効率的で十分にテストされたものをすぐに取得したいと考えています。私が探している方法は次のようになります。
static int[] getPrimeFactors(int n)
n=12 の場合、{2,2,3} を返します。
ライブラリには、long 型または BigInteger 型を処理するためのオーバーロードもある場合があります。
問題は特定のアプリケーションに関するものではなく、この問題を適切に処理するライブラリを持つことです。多くの人は、数値の範囲に応じて異なる実装が必要であると主張していますが、この点に関しては、ライブラリが実行時に最も合理的な方法を選択することを期待しています。
効率的とは、「世界最速」という意味ではありません (そのための JVM では作業しません...)。int と long range を 1 時間ではなく 1 秒以内に処理することを意味します。