algo — C++23 日本語リファレンス GitHub

totient_sum

関数 · 乗法的関数の累積和を劣線形で計算する(杜教筛 / Dirichlet 双曲線法)

template <class T>
T totient_sum(long long n);

概要

$\sum_{i=1}^{n} \varphi(i)$ を $O(n^{2/3})$ で計算する

$\varphi * 1 = \mathrm{Id}$(恒等関数)より $H(m) = m(m+1)/2$、$g = 1$ で杜教筛を回す。

計算量

関連項目