用途
オイラーのトーシェント関数. に対して, と互いに素である以上以下の自然数の個数を与える.
nの素因数分解が
と表されるとき,
と変形できることを利用して計算する。
計算量
使い方
int res = euler_phi(n);実装
int euler_phi(int n) { int ret = n; for (int i = 2; i * i <= n; i++) { if (n % i == 0) { ret -= ret / i; do n /= i; while (n % i == 0); } } return n > 1 ? ret - ret / n : ret;}