欧拉函数

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

1.欧拉函数的通用公式就是: φ ( n ) = n ∗ ( 1 − 1 p 1 ) ∗ ( 1 − 1 p 2 ) ∗ . . . ∗ ( 1 − 1 p n ) \varphi (n)=n*(1-\frac{1}{p1})*(1-\frac{1}{p2})*...*(1-\frac{1}{pn}) φ(n)=n(1p11)(1p21)...(1pn1)【pi为质数】

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

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

2. φ ( n ) = n − 1 \varphi(n)=n-1 φ(n)=n1【n为质数】

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

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

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

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

φ ( a ∗ b ) = φ ( a ) ∗ φ ( b ) \varphi(a*b)=\varphi(a)*\varphi(b) φ(ab)=φ(a)φ(b)

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

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

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

当n为素数时, φ ( n ) = n − 1 \varphi(n)=n-1 φ(n)=n1
当a和b互质时, φ ( a ∗ b ) = φ ( a ) ∗ φ ( b ) \varphi(a*b)=\varphi(a)*\varphi(b) φ(ab)=φ(a)φ(b)
当a mod b=0时, φ ( a ∗ b ) = φ ( a ) ∗ b \varphi(a*b)=\varphi(a)*b φ(ab)=φ(a)b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值