数の最大の素因数を計算するための最良のアプローチは何ですか?
私は最も効率的なものは次のようになると思います:
- きれいに割れる最小の素数を見つける
- 除算の結果が素数かどうかを確認します
- そうでない場合は、次に低いものを見つける
- 2に進みます。
この仮定は、小さな素因数を計算する方が簡単であることに基づいています。これで大丈夫ですか?他にどのようなアプローチを検討する必要がありますか?
編集:結果が他の2つの素数の積であるときにステップ2が失敗するため、再帰アルゴリズムが必要であるため、2つ以上の素因数が存在する場合、私のアプローチは無駄であることがわかりました。
もう一度編集します。最後に見つかった素数が最も大きい必要があるため、これでも機能することに気づきました。したがって、ステップ2からの素数以外の結果をさらにテストすると、素数が小さくなります。
1.
分割が明確(iは整数(SQR(NUM))に2 =の場合)ことを任意の数を見つける2.
何もで発見されなくなるまで、その数で割る(NUM = NUM / I)とRECUR 1の間隔3.
NUMが最大の要因である