AT_pakencamp_2021_day2_p A^k=k

题目描述

请针对 $T$ 个测试用例,解决以下问题。 给定正整数 $A$ 和 $M$。请计算满足 $A^k \equiv k \pmod{M}$ 的非负整数 $k$($k < M \times \varphi(M)$)的个数(记为 $ans$),并构造出满足条件的 $k$ 的 $\min(ans,1000)$ 个。 其中,$\varphi(M)$ 表示[欧拉函数](https://ja.wikipedia.org/wiki/%E3%82%AA%E3%82%A4%E3%83%A9%E3%83%BC%E3%81%AE%CF%86%E9%96%A2%E6%95%B0)。

输入格式

输入通过标准输入给出,格式如下: > $T$ > $\mathrm{case}_1$ > $\mathrm{case}_2$ > $\vdots$ > $\mathrm{case}_T$ 每个测试用例格式如下: > $A$ $M$

输出格式

请输出 $2T$ 行。对于第 $i$ 个测试用例,从第 $2i-1$ 行到第 $2i$ 行输出对应的答案。 对于每个测试用例,第一行输出题目中定义的 $ans$,第二行输出用空格分隔的、满足条件的 $k$ 的 $\min(ans,1000)$ 个。 要求输出的 $k$ 必须互不相同。

说明/提示

### 限制条件 - $1 \leq T \leq 100$ - $1 \leq A, M \leq 10^9$ - 所有输入均为整数 ### 样例解释 1 $2^4 \equiv 4 \pmod{4}$。 原案: [turtle0123\_\_](https://atcoder.jp/users/turtle0123__) 由 ChatGPT 4.1 翻译