关于欧拉筛求phi的讨论

对于任意正整数i,我们将其所有的质数(p)倍筛去。
如果当前的p已经是i的约数,那么之后的数 p*i中, p一定不是p*i的最小质因子。
每个合数只会被其最小质因子筛去一次,所以时间复杂度为O(N)。

i 为质数:ϕ(i)=i1

i 的最小质因子指数为1:根据ϕ(ab)=ϕ(a)ϕ(b)(a,b)可知, ϕ(ip)=ϕ(i)ϕ(p)

i 的最小质因子指数大于1(即当前p ip 的最小质因子,且 p 整除i): ϕ(ip)=ϕ(i)p ,下面给出证明。

已知 p|i ,且 p 为质数,求证ϕ(ip)=ϕ(i)p
证明:
因为 p|i ,则令 m=i/p ,即 i=mp
ϕ(ip)=ϕ(mp2) ,且 m p互质
所以 ϕ(mp2)=ϕ(m)ϕ(p2)=ϕ(m)(p1)p
又因 p 为质数,ϕ(m)(p1)p=ϕ(m)ϕ(p)p=ϕ(mp)p
ϕ(ip)=ϕ(i)p ,证毕。

每个数只会被它的最小质因子筛一次,时间复杂度为 O(n)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值