#aBC335G. [ABC335G] Discrete Logarithm Problems

[ABC335G] Discrete Logarithm Problems

AT_abc335_g [ABC335G] Discrete Logarithm Problems

题目描述

给定 NN 个整数 A1,,ANA_1,\ldots,A_N 和一个素数 PP。请你计算满足以下条件的整数对 (i,j)(i, j) 的个数。

  • 1i,jN1 \leq i, j \leq N
  • 存在某个正整数 kk,使得 AikAj(modP)A_i^k \equiv A_j \pmod{P}

输入格式

输入以以下格式从标准输入读入。

NN PP A1A_1 A2A_2 \ldots ANA_N

输出格式

请输出答案。

输入输出样例 #1

输入 #1

3 13
2 3 5

输出 #1

5

输入输出样例 #2

输入 #2

5 2
1 1 1 1 1

输出 #2

25

输入输出样例 #3

输入 #3

10 9999999999971
141592653589 793238462643 383279502884 197169399375 105820974944 592307816406 286208998628 34825342117 67982148086 513282306647

输出 #3

63

说明/提示

限制条件

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • 1Ai<P1 \leq A_i < P
  • 2P10132 \leq P \leq 10^{13}
  • PP 是素数
  • 所有输入均为整数

样例解释 1

满足条件的 55 个数对为 (1,1),(1,2),(1,3),(2,2),(3,3)(1,1),(1,2),(1,3),(2,2),(3,3)。例如对于 (1,3)(1,3),取 k=9k=9 时,有 A19=5125=A3(mod13)A_1^9 = 512 \equiv 5 = A_3 \pmod{13}

由 ChatGPT 4.1 翻译