T151778 「MCOI-(-1)」风吹一夜满关山

题目背景

> 雪净胡天牧马还,月明羌笛戍楼间。 > 借问梅花何处落,风吹一夜满关山。 > > ——高适《塞上听吹笛》 --- “你在听笛声吗?” “嗯……也许通过这笛声,我能想到我从前的家吧……” “你的家…… ?Him…… 你……” “别说了……” 夜色中,两个人架着马离开了。 --- ![](https://cdn.luogu.com.cn/upload/image_hosting/g6mwb85v.png)

题目描述

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}$。