给定数字 ,建立一个无向图。对于所有 到 之间的数字,当数字 时将 、 连一条边,边权为 。 表示 到 的最短路,求所有 的和,其中 。
Constraints
$1 \leq n \leq 10^7 $
Solution
对于 以及所有大于 的质数,与其他数字均不联通,直接剔除。
对于剩下的数字:
当 时, 。即对于数字 ,小于 且 的数字个数为 。
令 表示数字 的最小质因子,则当 时, 。维护数组 、 , 代表最小质因子为 的数字个数, 数组为 数组的前缀和。统计 可以覆盖所有 的情况,其中减去自身与自身被统计的情况,剩下的所有数对都被统计了两次,其中包含 的情况,需进行相应处理,详见代码。
剩下的数对最短路一定为 ,因为 → → → 这条路一定存在。可通过数对总数减去 与 的情况得到。
Code
1 |
|