欧拉函数

来源:互联网 发布:网贷系统源码下载 编辑:程序博客网 时间:2024/06/08 01:49

数论,对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1)

通式:

  其中p1, p2……pn为x的所有质因数,x是不为0的整数。

注意:每种质因数只一个。 比如12=2*2*3那么φ(12)=12*(1-1/2)*(1-1/3)=4


欧拉函数是积性函数——若m,n互质,
 

特殊性质:当n为奇数时,
  ;

若n为质数则
 


int euler(int n) {    int ans = n;    for (int i = 2; i * i <= n; i++) {        if (n % i == 0) {            ans = ans / i * (i - 1);            while (n % i == 0) n /= i;        }    }    if (n > 1) ans = ans / n * (n - 1);    return ans;}

原创粉丝点击