```cpp
#include<iostream>
#include<bitset>
using namespace std;
const int N=1e5;
int x,t,n;
bitset<N+10> isp;
int p[N+10],cnt;
void Prime()
{
isp[1]=true;
for(int i = 1;i <= N;i++)
{
if(!isp[i]) p[++cnt]=i;
for(int j = 1;j <= cnt&&i*p[j] <= N;j++)
{
isp[i*p[j]] = 1;
}
}
}
int Pow(int a,int x)
{
int res=1;
for(;x;a = 1ll*a*a%n,x>>=1)
{
if(x&1) res = 1ll*res*a%n;
}
return res;
}
void solve2()
{
if(isp[n]&&(n^1)&&(n^4))
{
cout<<0<<endl;
return;
}
else
{
if(n == 1)
{
cout<<2<<" "<<1;
return;
}
if(n==4)
{
cout<<2<<" "<<1<<" "<<3<<" "<<2<<" "<<4;
return;
}
cout<<2;
for(int i = 1,tmp = 1,sum = 1;i <= n-1;i++)
{
cout<<" "<<tmp;
tmp = 1ll*Pow(sum,n-2)*(i+1)%n;
sum = 1ll*sum*tmp%n;
}
cout<<" "<<n;
cout<<endl;
}
}
int main()
{
cin>>x>>t;
if(x == 2)
{
Prime();
}
if(x == 1)
{
while(t--)
{
cin>>n;
if((n&1)&&(n^1))
{
cout<<0<<endl;
continue;
}
else
{
cout<<2;
for(int i = 1;i <= n;i++)
{
cout<<" ";
if(i&1)
{
cout<<n+i-1;
}
else
{
cout<<i-1;
}
}
cout<<endl;
}
}
}
else
{
while(t--)
{
cin>>n;
solve2();
}
}
}
```
by IANYE @ 2022-06-12 11:25:31
(这是我大号交的)
by IANYE @ 2022-06-12 11:26:07