Problem
Lucas的数论
Description
去年的Lucas非常喜欢数论题,但是一年以后的Lucas却不那么喜欢了。
在整理以前的试题时,发现了这样一道题目“求,其中”,其中表示的约数个数。他现在长大了,题目也变难了。
求如下表达式的值:
其中表示的约数个数。
他发现答案有点大,只需要输出模的值。
Input
第一行一个整数。
Output
Sample Input
1 | 2 |
Sample Output
1 | 8 |
HINT
标签:莫比乌斯反演
杜教筛
Solution
题意和BZOJ3994相同,只是将数据范围扩大了。
仍然要用相同的结论:。
然后就可以推反演了:
对于后面的和式,可以用数论分块在的时间内算出。对前面也进行数论分块,发现的范围比较大,不能直接预处理的前缀和,于是用杜教筛计算的前缀和即可。杜教筛可参考BZOJ3944。
总复杂度……?
Code
1 |
|