私は、Interview Street の「UnFriendly Numbers」パズルに取り組んでいます。
こんなふうになります:
与えられた整数と別の整数のリストから、与えられた整数にのみ固有であり、他の整数のリストと共有されていない係数を見つけます。
したがって、セット 1 (セット Y) が (および n が指定された数値である) 場合:
∃Y{z|n % z = 0}
基本的に: すべての z に Y があり、z は n % z が 0 の数値です。
Y の集合差から、他の数のリストのすべての因数を含む集合を差し引いたものが必要です。
では、これにどのようにアプローチしますか?
整数 n の因数を見つけますか? 他の数値のすべての要因と、一意ではない要因を除外するだけですか?
それとも、n の因数だけを見つけて、それらを使用して他の数を割り、一意でない数を除外しますか?
それとも素因数分解せずにやる方法ありますか?
ここまでは、試行分割、ポラードのロー、ブレントのポラードのローのバリエーション、フェルマーの因数分解法を使用してきました。Lucas-Lehmer primality test と Euclids GCD も利用しました。
しかし、これまでのところ、間違った答えの組み合わせまたは制限時間を超えているだけです。既知の解決策には、ホイール プライム シーブが関係していると思われますが、それが何であるかはわかりません。
とにかく、ありがとう。