Maojui

歐拉函數 | Euler function

2017-03-10

  1. 如果 $N$ 為質數 : $p$

    $\phi(N) = (p-1)$


  1. 如果 $N$ 為 $n$ 個質數 : $p \times q \times r \times …$

    $\phi(N) = (p-1)(q-1)(r-1)…..$


  1. 如果 $N$ 為多個 $n$ 個質數 : $p^{3} \times q^{5} \times r \times …$

    $\phi(N) = p^{2}(p-1)q^{4}(q-1)(r-1)…..$


Python
1
2
3
4
5
# pairs = { p: 3, q: 5, r: 1, ... }
phi = 1
for factor, _pow in pairs:
phi *= pow(factor, _pow - 1)
phi *= (factor-1)

參考資料:維基百科 - 歐拉函數

Tags: Intro