题意:求第k个无平方因子数是多少
无平方因子数(square-free number),即质因数分解之后所有质因数的次数都为1的数
膜拜Po姐姐
二分答案 设二分后值为x 我们考虑前x个数中是否含有超过k个不是平方因子的数
我们考虑平方因子一定含有至少一个质数的平方
那么考虑容斥,即质数平方个数为0的数的个数-质数平方个数为1的数的个数+质数平方个数为2的数的个数-……
公式表示的话 设有p个素数而且选择了i个素数是平方,且任选i个素数的乘积为d,得到公式
$f(x)=\sum_{i=0}^{p}(-1)^i \lfloor \frac{n}{d^{2}} \rfloor(d为任意i个素数相乘的积)$
发现d最多选择到$\sqrt{ n }$ 那么我们可以考虑直接枚举d 于是问题变成了如何快速判断d的贡献
莫比乌斯函数即是。
然后根据莫比乌斯函数的定义式,将式子化为$f(x)=\sum_{d=1}^{\sqrt{x}} \mu (d) \lfloor \frac{n}{d^{2}} \rfloor $
所以我们枚举根号n内的所有答案 带入计算即可 复杂度$O(\sqrt{n}log{n})$
/*To The End Of The Galaxy*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include