码迷,mamicode.com
首页 > 其他好文 > 详细

欧拉函数

时间:2019-08-23 19:11:18      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:个数   函数   为我   提取   重要   成功   质数   分配   欧拉函数   

之前我们自学欧拉函数的时候,一直都是一脸懵逼的,可能是我智力的问题吧(我就是一个小小的蒟蒻),后来问了一些大佬,然后又不停的查百度才懂的。。。。(有问题,问度娘)
言归正传,现在开始讲欧拉函数:
序:欧拉函数实际上就是求一个数与他互质的数的个数(肯定要小于他自己啦!),我们表示为$\varphi (n)$

1.欧拉函数的通用公式就是:$\varphi (n)=n(1-\frac{1}{p1})(1-\frac{1}{p2})...(1-\frac{1}{pn})$【pi为质数】

这个其实是可以理解的,我们已经知道:素数n的phi实际上就是n-1,为什么呢?因为除了他自己,其他比他小的数都与他互质嘛,其实这也是一个质数特性。然而$1-\frac{1}{pi}$其实就相当于分率,因为我们已知pi就是质数了,而质数的一大堆特性我们都可以搬过来用,pi只有他自己不与他互质,而剩下的就都与他互质啦!所以就是1-1/pi嘛,然后我们将所有的分率乘起来,最后再乘一个n,那么就是$\varphi(n)$啦!

介个也可以证明:我们令n=pq,那么$\varphi (n)=n-\frac{n}{q}-\frac{n}{p}+\frac{n}{q+p}$
然后你再化简,就会得到$\varphi (n)=n
(1-\frac{1}{p1})(1-\frac{1}{p2})...*(1-\frac{1}{pn})$

2.$\varphi(n)=n-1$【n为质数】

这个也是很好理解的,我上面已经讲了。

3.接着,我们设$n={p}^k$,也就是说n能分成若干个相同的数相乘,那么我们就开始来研究phi(n)吧!
首先$\varphi(n)=\varphi(p^k)=n-\frac{n}{p}$(因为n除了p的倍数,剩下的数都与他互质嘛,例如$8=2^3$,8除了2,4,6,8【我们这里暂且包括8,因为后面我们是用8来减得】,剩下的数都与他互质了呀!而p的倍数的个数就是$\frac{n}{q}$呀)=$p^k- \frac{p^k}{p}=p^k-p^{(k-1)}$

这里,我们两个式子都提取出$p^{(k-1)}$,然后就成为$p^{(k-1)}p-p^{(k-1)}1$,太好了,可以乘法分配律,就是$p^{(k-1)}*(p-1)$
这个式子很重要,后面的证明都需要!

4.啊哈,如果你看到这里并且很理解前面的公式的话,那么就恭喜你,你离成功已经很近了!
这里我们设a和b互质,事实证明

$\varphi(ab)=\varphi(a)\varphi(b)$

为什么捏?我们令$n=p1^{a1}p2^{a2}....pn^{an}$【并且pi为质数】
∵$\varphi(n)=n
(1-\frac{1}{p1})(1-\frac{1}{p2})......(1-\frac{1}{pn})$【pi为质数】
∴原式=$(p1^{a1}
p2^{a2}....pn^{an})(1-\frac{1}{p1})(1-\frac{1}{p2})......(1-\frac{1}{pn})$
=$(p1^{a1}p2^{a2}....pn^{an})(p1-1)(p2-1)......(pn-1)/(p1p2.....pn)$
=$[(p1-1)*p1^{(a1-1)}][(p2-1)*p2^{(a2-1)}].....[(pn-1)*pn^{(an-1)}]$
=$\varphi(p1^{a1})
\varphi(p2^{a2})....\varphi(pn^{an})$【根据上面3的公式】
这样我们就发现$\varphi(p1^{a1})\varphi(p2^{a2})....\varphi(pn^{an})=\varphi(p1^{a1}p2^{a2}....pn^{an})$
啊,太有趣了,那么也就是说:当几个数中相互互质的话,那么phi就是积性函数,所以就是上面的$\varphi(ab)=\varphi(a)\varphi(b)$【abs(a,b)=1】

5.最后一个公式了,恭喜你啊,你就要成功了!
当a mod b=0时,$\varphi(ab)=\varphi(a)b$
这个很简单就可以证明:由上面所说,b并到其中一个$b^x$里面,那么$\varphi(a)=\varphi(b^x)=(b-1)b^{(x-1)}$
然后$\varphi(a
b)=\varphi(b^xb)=\varphi(b^{(x+1)})=(b-1)b^x$
$(b-1)b^{(x-1)}b=(b-1)b^x$
∴$\varphi(a)
b=\varphi(a*b)$

奶思,成功啦,代码就是在线性素数上改一下:

当n为素数时,$\varphi(n)=n-1$

当a和b互质时,$\varphi(ab)=\varphi(a)\varphi(b)$

当a mod b=0时,$\varphi(ab)=\varphi(a)b$

欧拉函数

标签:个数   函数   为我   提取   重要   成功   质数   分配   欧拉函数   

原文地址:https://www.cnblogs.com/candy067/p/11401966.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!