Typesetting math: 100%

ABC361F x=a^b(容斥,莫比乌斯反演)

题意

1 ~ n 中有多少数 x 可以写成 x=ab 的形式(其中 b2

n1018

容斥

显然 1 是可以写成 1b 的,我们单独讨论这种情况,以下默认 a2

发现一个数有可能有很多种 ab 的写法,比如 64=26=43=82

显然当 b 不是质数时,就一定可以把 b 拆得更小,即 x=ab=(ap)bp。所以我们不妨忽略 b 不是质数的情况,即只统计 app 为质数)。

对于一个 b,有 a=2,3,,nb1 使得 ab 符合题意。

但是答案并不是所有 nb1 之和,比如 b=2b=3 时,都会统计到 x=64=82=43,所以我们考虑容斥。

  • 先加入 b=pi 的情况,即 a2,a3,a5,
  • 再除去 b=pipj 的情况,即 a2×3,a2×5
  • 再加入 b=pipjpk 的情况

其中 b 的容斥系数与其质因数个数有关,且含平方因子的 b 系数为 0。不难发现这就是 μ(b),所以最后答案为

1b=2log2nμ(b)(nb1)

本文作者:hzy1

本文链接:https://www.cnblogs.com/hzy1/p/18325949

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   hzy1  阅读(57)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起