传送门
MD写一道二次剩余的板题差点写自闭了。
我用的是 c i p o l l a cipolla cipolla算法。
利用的是欧拉准则来找寻一个二次非剩余类来求根。
注意这题有两个等根和模数为2的情况。
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int T,n,mod;
inline int ksm(int a,int p){
int ret=1;for(;p;p>>=1,a=(ll)a*a%mod)if(p&1)ret=(ll)ret*a%mod;return ret;}