您的位置:首页 > 其它

关于欧拉函数的递推方法的证明

2015-07-24 18:41 239 查看
首先什么是欧拉函数呢?

欧拉函数phi(n)就表示1-n中与n互质的数的个数

设Xi为1-n中与n互质的数(一共有phi(n)个)

那么我们可以知道phi(2) = 1 , phi(3) = 2.......,我们也可以通过如下的递推式获得更大的欧拉函数的值

对于任意一个能被n整除的质数,有m = n/p

当m%p == 0 的时候,phi(n) = phi(m)*p

当m%p != 0的时候,phi(n) = phi(m)*(p-1)

下面给出一种证明方法:

-------------------------------------------欧拉函数的推导式的推导和证明-----------------------------------------------------

1)由质因数分解定理得,在n中至少能够分解出一个素数p,导致 n = p*m,那么可以将1~n划分为一个区间的集合{ [m*(i-1) , m*i ] , 1<=i<=p },则对于每个区间[m*(i-1)+1,m*i],其中的每个数可以看做m*(i-1)+j (1<=j<=m)。

2)所以gcd ( m*(i-1)+j , m )

= gcd ( m , (m*(i-1)+j)%m ) (根据秦九韶辗转相除法)

=gcd ( m , j )

那么也就是每个区间对应位置的数均与1~m中的某个数gcd相同,互质便是gcd(a,b)==1,所以1~n中与m互质的数有p*phi(m)个。

3)那么我们接下来进行分类讨论:

若m%p == 0 , 那么 m = a*p(a为一个正整数),所以若gcd(b,m) == 1 ,那么 gcd ( b , p ) == 1 , 所以 gcd ( m*p , b ) == 1 , 即gcd ( n , b ) == 1 ,所以在这种情况与m互质的数均与n互质,所以phi(n) = phi(m)*p;

若m%p != 0 , 那么若gcd ( b , m) == 1 , gcd ( b , p ) == p , 那么 gcd ( n , b ) == p,所以1~m与m互质的数为q,若m%p != 0 , 那么与m互质且与p不互质的数是q*p,因此在n当中这样的数有phi(m)个,所以 phi(n) = phi(m)*p - phi(m)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: