欧拉函数的推导

欧拉函数的定义:phi(n)表示在1~n中与n互质的数

  难点:

    & 与平常的递推唯一不同的是:递推不是由(n-1)推来,这给想出推理过程带来了麻烦

    & 如何充分使用互质这个概念,不像其他递推能够容易的列出递推关系

  分析:

    &对互质的挖掘:

           &  两个数的最大公约数(a,b)为 1  ( (a,b)表示a,b的最大公约数)

           &  对构成b的所有素因子,a都不能整除它们

                 由这里可以得到一个很显然的推论:如果构成a,b的素因子集合相同,那么任意的一个数与a,b的关系是: 同时与其互质或者同时不与其互质

    & 上面经常出现的字眼“素因子”,是否在提示我们递推式与素因子有关呢?

                  假设:  n=p*m     (p 为素数)

                  提示我们:phi(n),phi(m)是否存在递推式呢?

                  答案是肯定的:

                 (1)1~n中与m互质的数目与phi(m)有什么关系呢?

                           将1~n 可以分成p份: (1,m) , (m+1,2m),……( (p-1)*m,p*m )

                          为何这样分呢? 你将发现 每份中与m互质的数目是相同的

                          因为 如果 (b,m)=1,那么(b+t*m,m)=1( b+t*m 无法整除m中任意素因子,模运算的分配率)

                  (2) 现在考虑一个问题:(b,m)=1,那么(b,n)=1么?

                            从刚刚的互质出发:  如果构成m的素因子集合包含p,那么构成n,m的素因子集合是相同的,

                            因此上式成立,否则当b能整除p时,上面显然不成立(存在公有素因子p)。故:

                             m%p=0时   :phi(n)=phi(m)*p(一共有p份)

                             m%p!=0时:phi(n)=phi(m)*p-{与m互质但是p的倍数的数}

                             {与m互质但是p的倍数的数}=phi(m)(p,2*p,3*p,……,m*p中选取,等效1~m求与m互质的数目)

                             这phi(n)=phi(m)*(p-1)

                   最终得到递推式:

                       m%p=0时   :phi(n)=phi(m)*p

                       m%p!=0时:phi(n)=phi(m)*(p-1)

                   递推求出通项公式:

                           phi(n)=∏  pi^(ki-1)*(pi-1)  ({pi}为n的所有素因子)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值