转载自Ujimatsu Chiya大佬.

令 $ N = 10^{10} $。我们考虑这个问题的对立:$ N $ 以内有多少个数 $ n $,满足其最大的质因数 $ p $ 大于等于 $ n $ 的平方根?也就是说,$ p \geq \left\lfloor \frac{n}{p} \right\rfloor $。

假设质数集合为 $ P $。那么,考虑以每个质数 $ p $ 作为这个最大质因数,分开计算。那么,数 $ p, 2p, 3p, \ldots, (p - 1)p, p^2 $ 都是满足要求的数。

因此,题目的答案为

对于式子的第二块,直接枚举 $\sqrt{N}$ 以内的质数并相加即可。

对于式子的第三块,可以写成:

其中,$\pi(n)$ 是质数计数函数,即 $n$ 以内的质数个数。这条式子说明,有 $\pi \left( \frac{N}{i-1} \right) - \pi \left( \frac{N}{i} \right)$ 个质数 $p$ ,满足 $1 \sim N$ 中有 $i-1$ 个数是 $p$ 的倍数,它们的贡献为 $(i-1)$ 。

计算函数 $\pi$ 考虑使用Lehmer公式帮助计算。

代码不复制了.

已严肃学习大佬 $O(\frac{n^{2/3}}{\log^2n})$ 的代码实现.