为什么大佬们的代码中二次探测定理部分找到 ad≡−1(modp) 后就可以确定通过测试啊。
如这位大佬:
typedef unsigned long long ull;
typedef unsigned int word;
bool check(const word a,const ull p){
ull d=p-1,get=pow(a,d,p);
if(get!=1) return 1;
while((d&1)^1)
if(d>>=1,(get=pow(a,d,p))==p-1) return 0;
else if(get!=1) return 1;
return 0;
}