#P51093. 「2019 集训队互测 Day 1」整点计数

「2019 集训队互测 Day 1」整点计数

题目描述

小 X 的姐姐小 F 是一名 X 国的占星师,而作为附魔师的小 X 则需要在占星的过程中辅助小 F。

今夜,空中的星星排列得格外整齐,如果将整个星空抽象成一个平面直角坐标系的话,在每一个整点处,都恰好有一颗星,小 X 和小 F 所在的星就是原点。

距离小 X 和小 F 所在的星相同的星之间是会相互作用的,如果记 f(x)f(x) 表示距离小 X 和小 F 所在的星 xx 个单位的星星的个数,那么这一系列的星将共计产生 f(x)kf(x)^k 点能量。

小 F 观察到,在月圆之夜,距离自己和小 X 所在的星恰好整数个单位的星产生的能量将会变得易于收集。并且,由于技术限制,小 F 暂时只能够收集距离自己和小 X 所在的星不超过 NN 个单位的星产生的能量。需要特别注意的是,小 X 和小 F 所在的星并不会产生能量。

小 X 要做的,就是帮助小 F 计算此时能够被收集的能量总量。由于能够收集的能量实在太过庞大,小 X 难以确保自己计算毫无失误,因此他希望你能够告诉他这个数值在对某一个数 PP 取模后的结果来验证他计算的正确性。

输入格式

一行三个正整数 N,k,PN,k,P

输出格式

一行一个整数 Ans\text{Ans},表示能量总量对 PP 取模的结果。

样例 1

5 1 998244353
28

样例输入中 k=1k=1,不难发现此时小 XX 需要计算的就是距原点 55 单位内,且至原点距离为整数的整点个数,对 998244353998244353 取模的结果。

形如 (x,0),(x,0),(0,x),(0,x)(x,0),(-x,0),(0,x),(0,-x) 的符合要求的整点有 4×5=204\times 5=20 个;除了以上整点以外,还有 (3,4),(3,4),(3,4),(3,4),(4,3),(4,3),(4,3),(4,3)(3,4),(-3,4),(3,-4),(-3,-4),(4,3),(-4,3),(4,-3),(-4,-3)88 个符合要求的整点,总计 2828 个。

500 5 1000000000
365511168
142857 1 1000000009
2481012
998244353 998244353 998244353
637246480

数据范围与提示

对于所有测试数据,保证 1N,k1011,108P109+91 \leq N,k \leq 10^{11},10^8 \leq P \leq 10^9+9

测试点编号 分值 NN kk PP
1 33 1000\leq 1000 5\leq 5 PP 是质数
2 8×103\leq 8\times 10^3
3 66 2×105\leq 2\times 10^5
4 5×105\leq 5\times 10^5
5 55 3×106\leq 3\times 10^6
6 2×107\leq 2\times 10^7
7
8
9 88 2×108\leq 2\times 10^8 =1=1
10
11 =2=2
12
13 11 109\leq 10^9 =15=15 PP22 的次幂
14 =18=18
15 44 109\leq 10^9 PP 是质数
16 1010\leq 10^{10}
17
18
19 66 1011\leq 10^{11} 没有额外的限制
20