Skip to content

歐拉函數

定義

歐拉函數計算對於一個整數 N,小於等於 N 的正整數中,有幾個和 N 互質。通常用 表示。

性質

  • 歐拉函數是一個積性函數:如果
  • 如果 是質數:
  • 如果 是質數:

計算

根據上述性質,可整理出一個公式:

要計算 ,可以利用質因數分解求得。

1

另一種辦法是利用質數篩法。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
void phi_table(int n)
{
    phi[1] = 1;
    for (int i = 2; i <= n; i++)
    {
        if (phi[i])
            continue;
        for (int j = i; j < n; j += i)
        {
            if (!phi[j])
                phi[j] = j;
            phi[j] = phi[j] / i * (i - 1);
        }
    }
}

相關定理

費馬小定理

給定一個質數 及一個整數 ,那麼: 如果 ,則:

歐拉定理

歐拉定理是比較 general 版本的費馬小定理。給定兩個整數 ,如果 ,則 如果 是質數, ,也就是費馬小定理。

Wilson's theorem

給定一個質數 ,則:

例題練習