問題
大きな整数Nが与えられる。これを素因数分解した時の昇順にならんだ因数の数列を求めたい。ヒントとして答えとなる数列の偶数番目の要素(初めのインデックスは0)を取り出した数列が与えられる。
解法
愚直に素因数分解をするととなるため、計算量を削る必要がある。
答えとなる数列の要素が奇数の場合最大の因数が答えに含まれ、偶数の場合は2番目に大きい因数が含まれる。ヒントに含まれていない一番大きい因数を求めようとすると計算量がとなってしまうので、ヒントに含まれていない二番目に大きい因数を求めるようにする。
二番目に大きい因数をpとする。答えとなる数列の要素が偶数の場合はを満たし、
奇数の場合はを満たす。よって、
で答えが求まる。
補足:
rho法を用いればでも、制限時間内に解けそう。
計算量