T151778 「MCOI-(-1)」风吹一夜满关山
题目背景
> 雪净胡天牧马还,月明羌笛戍楼间。
> 借问梅花何处落,风吹一夜满关山。
>
> ——高适《塞上听吹笛》
---
“你在听笛声吗?”
“嗯……也许通过这笛声,我能想到我从前的家吧……”
“你的家…… ?Him…… 你……”
“别说了……”
夜色中,两个人架着马离开了。
---

题目描述
Him 创建了一种 Him 运算,给定正整数 $n, k$ 的值,Him 值为:
$$\displaystyle\sum_{k\ |\ i}^n \tau(i)$$
求 $n, k$ 的 Him 值。
**Note:$\tau$ 为约数个数和函数(部分选手可能习惯写作 $d$)。**
由于结果可能很大,所以你只需要求出结果对 $p$ 取模的值。
为了避免过大的输入量,本题采用数据生成器生成 $k$。
对于 `C/C++` 选手,生成器模板如下:
```cpp
typedef unsigned int uint;
inline uint get_next(uint &seed){
seed ^= seed > 17;
seed ^= seed > 5) + 1;` 即可获得 $k$ 的值。
输入格式
**本题有多组测试数据。**
一行,四个整数 $T, n, p, \operatorname{seed}$,表示数据组数、$n$ 的值、模数和数据生成器的种子。
输出格式
一行,一个整数,表示所有所求的 Him 值的异或和。
说明/提示
**本题开启捆绑测试。**
| Subtask | $T$ | $n$ | 分值 |
| :------: | :------: | :------: | :------: |
| $1$ | $1 \leq T \leq 10^3$ | $1 \leq n \leq 10^4$ | $15 \operatorname{pts}$ |
| $2$ | 无特殊限制 | $1 \leq n \leq 10^6$ | $25 \operatorname{pts}$ |
| $3$ | 无特殊限制 | 无特殊限制 | $60 \operatorname{pts}$ |
对于 $100\%$ 的数据,$1 \leq T \leq 10^7$,$1 \leq n \leq 10^7$,$1 \leq p \leq 10^9$,$0 \leq \operatorname{seed} < 2^{32}$。