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

题意

\(1\) ~ \(n\) 中有多少数 \(x\) 可以写成 \(x=a^b\) 的形式(其中 \(b\ge 2\)

\(n\le 10^{18}\)

容斥

显然 \(1\) 是可以写成 \(1^b\) 的,我们单独讨论这种情况,以下默认 \(a\ge 2\)

发现一个数有可能有很多种 \(a^b\) 的写法,比如 \(64=2^6=4^3=8^2\)

显然当 \(b\) 不是质数时,就一定可以把 \(b\) 拆得更小,即 \(x=a^b=(a^p)^{\frac{b}{p}}\)。所以我们不妨忽略 \(b\) 不是质数的情况,即只统计 \(a^p\)\(p\) 为质数)。

对于一个 \(b\),有 \(a=2,3,\dots,\lfloor\sqrt[b]{n}\rfloor-1\) 使得 \(a^b\) 符合题意。

但是答案并不是所有 \(\lfloor\sqrt[b]{n}\rfloor-1\) 之和,比如 \(b=2\)\(b=3\) 时,都会统计到 \(x=64=8^2=4^3\),所以我们考虑容斥。

  • 先加入 \(b=p_i\) 的情况,即 \(a^2,a^3,a^5,\dots\)
  • 再除去 \(b=p_ip_j\) 的情况,即 \(a^{2\times 3},a^{2\times 5}\dots\)
  • 再加入 \(b=p_ip_jp_k\) 的情况
  • \(\dots\)

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

\[1-\sum\limits_{b=2}^{\log_2{n}}\mu(b)\cdot(\lfloor\sqrt[b]{n}\rfloor-1) \]

posted @ 2024-07-26 17:55  hzy1  阅读(11)  评论(0编辑  收藏  举报