欧拉函数

来源:互联网 发布:php 即时通讯插件 编辑:程序博客网 时间:2024/06/05 03:13

欧拉函数phi(n)的意义是在[1,n]中与n互质的个数


先找出n的质因数p1,p2....,如8 = 2 * 2 * 2,12 = 2*2 *3,然后phi(n) = n*(1-1/p1)*(1-1/p2).....


代码如下


double oula(int n){    int temp = n;    int m = sqrt(n);    double phi = n;    for(int i=2;i<=m;i++){        if(n % i == 0){            phi *= (1 - 1.0/i);            while(n % i == 0) n /= i;        }    }    if(n == temp){        phi--;    }    else if(n != 1){        phi *= (1 - 1.0/n);    }        return phi;}


0 0
原创粉丝点击