Pair of Coprime Numbers

2 secs 1024 MB
magurofly's icon magurofly

解説

想定解1 O(NloglogN)O(N \log \log N)

NN 以下の互いに素な自然数のペアの個数は、オイラーの ϕ\phi 関数を使って i=1Nϕ(i)\sum_{i=1}^{N} \phi(i) と書くことができます。

ϕ(i)(i=1,2,,N)\phi(i) \quad (i = 1, 2, \ldots, N) は、エラトステネスの篩のようにすることで O(NloglogN)O(N \log \log N) で求めることができます。

想定解2 O(NlogN)O(N \log N)

前処理として、エラトステネスの篩を使って最小素因数のテーブルを O(NloglogN)O(N \log \log N) で作成します。

i=1,2,,Ni = 1, 2, \ldots, N について、素因数分解しながら ϕ(i)\phi(i) を求めると、ひとつあたり O(logN)O(\log N) 、全体では O(NlogN)O(N \log N) で求めることができます。