欧拉反演

欧拉反演

定理:

n=dnφ(d)

证明

显然对于一个 i (1in)ingcd 都是唯一的。

由此可得:

n=dni=1n [gcd(i,n)=d]

此公式相当于枚举 gcd。由于 ingcd 唯一,所以统计时只会贡献一次。

将公式变形,得:

n=dni=1n [di, gcd(id,nd)=1]

发现内层循环就是求在 nd 范围内与 nd 互质的数的个数,即为 φ(nd)

再次将公式变形,得:

n=dnφ(nd)

由于 dn,所以 dnd 的值一一对应。

所以进行最后的变形,得:

n=dnφ(d)

证毕。

应用

给定一个 n(1n1012),求 i=1ngcd(i,n)

推导

设答案为 ans

gcd(i,n) 进行欧拉反演,得:

ans=i=1ndgcd(i,n)φ(d)

观察到:若 dgcd(i,n),则符合条件的 d 要满足的充要条件是 di,dn

根据上述性质,改写得:

ans=i=1ndi,dnφ(d)

将内层循环移至外层,得:

ans=dni=1nφ(d)[di]

φ(d) 移至外层循环,得:

ans=dnφ(d)i=1n[di]

发现在 n 以内,di 的个数就是 nd

最终改写得:

ans=dnndφ(d)

时间复杂度

n(1n1012) 进行质因数分解:

n=p1r1p2r2pkrk

n 的因数个数最多时,r1=r2==rk=1

1012 范围内,满足条件的最大数是:

200560490130=2×3×5×7×11×13×17×19×23×29×31

此时因数个数为 211=2048,不算很多,时间复杂度足以通过本题。

posted @   gevenfeng  阅读(102)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示