题号:NC231471
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
给定整数

,求它的所有原根。
为了减小你的输出量,给出输出参数

,设

的所有原根有

个,从小到大分别为

,你只需要依次输出

。
---
如果你不了解原根的定义,可以自行查找资料或阅读下列定义:
正整数

是正整数

的原根,当且仅当

,且

模

的阶为
)
。
输入描述:
第一行:一个整数
,表示数据组数。
接下来
行:每行两个整数
,表示一组询问数据。
,
,
输出描述:
对于每组数据:
第一行输出一个整数
,表示
的原根个数,第二行输出
个数,按照题目描述中要求输出。
注意:即使
,也需要输出一个空行。
备注:
原题链接:https://www.luogu.com.cn/problem/P6091