それぞれにおいて素因数分解したものの、素因数ごとの指数の和を求めることができれば、 の正の約数の個数を求めることができます。
しかし、試し割り法を用いた素因数分解では、整数 の素因数分解に かかってしまい、間に合いません。(C++ なら間に合うかもしれませんが)
そこで、事前に の最小の素因数 であるような配列 を作ります。これはエラトステネスの篩を用いることで、 以下の整数に対応するものを で作成することができます。(典型 90 の 30 問目で用いるテクニックと似ています)
この配列 を用いて素因数分解を行うことで、整数 を で素因数分解することができます。
よって、整数列 の最大値を とすると、この問題を で解くことができました。