#P10663. BZOJ4833 最小公倍佩尔数

    ID: 10141 远端评测题 4000ms 512MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>数论O2优化莫比乌斯反演容斥

BZOJ4833 最小公倍佩尔数

题目背景

题目来自 BZOJ 2017 年 4 月月赛。

题目描述

(1+2)n=e(n)+2f(n)(1+\sqrt{2})^n=e(n)+\sqrt{2}f(n),其中 e(n),f(n)e(n),f(n) 都是整数,显然有 (12)n=e(n)2f(n)(1-\sqrt{2})^n=e(n)-\sqrt{2}f(n)。令 g(n)=lcm(f(1),f(2),,f(n))g(n)=\operatorname{lcm}(f(1),f(2),\dots,f(n))

给定两个正整数 n,pn,p,其中 pp 是质数,并且保证 f(1),f(2),,f(n)f(1),f(2),\dots,f(n) 在模 pp 意义下均不为 00,请计算 i=1ni×g(i)\sum \limits_{i=1}^n i\times g(i)pp 的值。

输入格式

第一行包含一个正整数 TT,表示有 TT 组数据。

接下来是测试数据。每组测试数据只占一行,包含两个正整数 nnpp

输出格式

对于每组测试数据,输出一行一个非负整数,表示这组数据的答案。

5
1 233
2 233
3 233
4 233
5 233
1
5
35
42
121

提示

对于 100%100\% 的数据,1T2101\leq T\leq 2101n1061\leq n\leq 10^62p109+72\leq p\leq 10^9+7n3×106\sum n\leq 3\times 10^6