luogu#P8457. 「SWTR-8」幂塔方程

    ID: 12450 远端评测题 5000ms 512MiB 尝试: 1 已通过: 0 难度: 7 上传者: 标签>原根数论洛谷原创Special JudgeO2优化扩展欧几里德,扩欧中国剩余定理,CRT逆元洛谷月赛

「SWTR-8」幂塔方程

题目背景

图片来自于 Solara570 的 B 站视频 轻易相信简单直观的结论究竟有多危险?

很久以前的某一天,小 A 在 B 站上无意间刷到了这个视频。视频中的无穷幂塔方程及其「简单直观,但暗藏陷阱」的解法令他影响深刻。

xxxxx\Huge x ^ {x ^ {x ^ {x ^ {x}}}}

题目描述

如果小 A 是一个,一个一个一个毒瘤,他会让你求解套了十层甚至九层的幂塔方程,但他不是。

他想让你求解:

xxD(modn)x ^ x\equiv D \pmod n

保证 nn 的最大质因子不超过 10510 ^ 5,且 DDnn 互质。

你需要保证得到的解 xx[0,2125][0, 2 ^ {125}] 范围内的整数。若该范围内无解,输出 1-1;若存在多解,输出任意一个。

多组测试数据。

输入格式

第一行一个整数 SS,表示该测试点的 Subtask 编号。

第二行一个整数 TT,表示数据组数。接下来 TT 组测试数据,每组数据形如:

  • 第一行两个整数 n,Dn, D
  • 第二行若干递增的质数 p1,p2,,pkp_1, p_2, \cdots, p_k,表示 nn 的所有质因子。

输出格式

输出 TT[1,2125][-1, 2 ^ {125}] 范围内的整数。

0
10
7 4
7
16 3
2
6 1
2 3
144 5
2 3
2520 11
2 3 5 7
999999 2
3 7 11 13 37
22511 21795
22511
47067727606562827 30911969774113407
3083 13697 25747 43291
2147483648 2333333
2
675288511488360000 510472780110265817
2 3 5 7 11
25
11
1
101
4811
219871229
16139671
760913896873844308082367046696111
1221598821
24445987958110300438937

提示

「数据范围与约定」

本题采用捆绑测试

  • Subtask #1(5 points):n20n\leq 20
  • Subtask #2(8 points):n400n\leq 400。依赖 Subtask #1。
  • Subtask #3(11 points):nn 是质数,T104T\leq 10 ^ 4
  • Subtask #4(15 points):μ(n)0\mu(n) \neq 0T100T\leq 100
  • Subtask #5(9 points):μ(n)0\mu(n) \neq 0T104T\leq 10 ^ 4。依赖 Subtask #4。
  • Subtask #6(13 points):n=pk(pprime)n = p ^ k(p \in \mathrm{prime})T100T\leq 100
  • Subtask #7(7 points):n=pk(pprime)n = p ^ k(p \in \mathrm{prime})T104T\leq 10 ^ 4。依赖 Subtask #3,#6。
  • Subtask #8(6 points):nn 的最大质因子不超过 1064 1064。依赖 Subtask #2。
  • Subtask #9(16 points):n109n\leq 10 ^ 9T104T\leq 10 ^ 4
  • Subtask #10(10 points):无特殊限制。依赖 Subtask #5,#7,#8,#9。

对于 100%100\% 的数据:

  • 1T4×1041\leq T\leq 4\times 10 ^ 4
  • 2n10182\leq n \leq 10 ^ {18}
  • 1D<n1\leq D < nDnD\perp n
  • 2p1<p2<<pk1052\leq p_1 < p_2 < \cdots < p_k \leq 10 ^ 5

「帮助与提示」

选手可以通过边读入边试除的方式判断何时停止读入 nn 的质因子。

「题目来源」