时间复杂度为
解决的问题有:
用来求积性函数前缀和,要求有
- 是一个关于质数p的项数较小的多项式或者能快速求值
- 可以快速求值
前置知识:
- 积性函数:对于互质的整数和有性质
- 完全积性函数:对于任意整数和有性质
- 规定是从小到大第零个质数,是从小到大第一个质数
- 在以内没有任何一个合数的最小质因子大于且那么
- 表示以内的质数个数
过程:
令
在求时可以通过将分为质数和合数来将分成两部分来求和,我们设一个完全积性函数为,它满足
再设为
显然
由前置知识第条可以知道,这里
考虑的状态转移:
而当时
然后根据完全积数函数的性质
结论为
最终结论为
设
回忆一下,我们最初要计算的答案就是
先给出公式
例题
【模板】Min_25筛
题目背景
模板题,无背景。
题目描述
定义积性函数,且(是一个质数),求
对取模。
输入格式
一行一个整数。
输出格式
一个整数表示答案。
样例 #1
样例输入 #1
10
样例输出 #1
263
样例 #2
样例输入 #2
1000000000
样例输出 #2
710164413
提示
对于的数据,保证。
对于的数据,保证
思路:
先求,由下面公式可得
一,由可知需要求出质数前缀和,题中当为质数时,,我们把和分别求前缀和放入,另外我们取为。
标签:前缀,积性,min25,样例,整数,质数,函数 From: https://blog.51cto.com/u_16085557/6843215