65pts惹awa。
``` c++
const int MAXN=1e5+10;
int X,T,N;
int pri[MAXN],Tot;
bool is[MAXN];
inline int qPow(int a,int b,int p)
{
int res=1;
while(b)
{
if(b&1) res=res*a%p;
a=a*a%p;b>>=1;
}
return res;
}
inline void sieve(int n)
{
is[1]=1;
for(int i=2;i<=n;++i)
{
if(!is[i]) pri[++Tot]=i;
for(int j=1;i*pri[j]<=n&&j<=Tot;++j)
{
is[i*pri[j]]=1;
if(i%pri[j]==0) break;
}
}
}
int main()
{
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
read(X,T);
sieve(MAXN-10);
while(T--)
{
read(N);
if(N==1)
{
puts("2 1");
continue;
}
if(X==1)
{
if(N&1) puts("0");
else
{
write("2 ");
for(int i=1;i<N;++i) write((i&1)?N-i+1:i-1,' ');
write(N-1,'\n');
}
}
if(X==2)
{
if(N==4||!is[N])
{
write("2 1 ");
for(int i=2;i<N;++i) write(i*qPow(i-1,N-2,N)%N,' ');
write(N,'\n');
}
else puts("0");
}
}
return 0;
}
/*
2 1
11
*/
```
加了个取模。
by Echoternity @ 2022-09-20 13:57:47