Description
今有一积性函数\(f(x)\),满足以下性质
- \(f(1) = 1\)。
- 对任意质数\(p\)和正整数\(c\),有\(f(p^c) = p\oplus c\)。
给定正整数\(n\),求\(\sum_{i = 1}^n f(i)\),答案模1000000007
。
\(n\leq 10^{10}\)。
Solution
算是一道不那么水的Min_25筛板子题?
Min_25筛最核心的地方就是对于质数的答案求前缀和。那么我们考虑对任意质数\(p\),\(f(p)\)的取值。然后我们会发现除了\(2\)以外的所有质数都是奇数,所以对于\(2\)有\(f(p) = p + 1\),对其他质数有\(f(p) = p - 1\)。
那么我们把质数的答案分为两部分考虑:一部分是\(p\),另一部分是后面的加减一。前面一部分就是质数本身的和,几乎就是最简单的Min_25筛;后面也不难,只需要对于小于等于2的情况特判一下就完了。
然后下面就是标准的Min_25筛了……Min_25筛真香!
Code
1 |
|