一意の約数を見つけるための最適なアルゴリズムの複製ではありません
この問題に遭遇しました。最適なアルゴリズムを見つけることができません。
問題は :
L
自然数のリスト (数値は非常に大きくなる可能性があります) と数値が与えられた場合、リストに存在する数値を分割しないN
除数の数を決定するための最適なアルゴリズムは何ですか。リスト内の数値は反復することができます。つまり、1 つの数値が複数回出現する可能性があります。N
L
観察:
の約数の約数は の約数d
でN
もありN
ます。
私のアプローチは:
- の約数を求め
N
ます。 - L を逆順に並べ替えます (最大の要素が 1 番目の要素になります)。
- のforeach 除数
d
、リストN
内の要素を分割するかどうかをチェックします。d
d
がリスト内のある数を除算する場合L
、 の除数をチェックしませんd
。つまり、このチェックをスキップします。- 最終的に、リスト内のどの数も除算もスキップもされなかった左除数がカウントされます。この数が最終的な答えです。
しかし、このアルゴリズムはこの問題には最適ではありません。
より良いアルゴリズムのアイデアはありますか?