求解方程 $ x^2 = a \space mod \space p $ ,其中p是質數,無解返回-1,有解則返回兩個解之中較小的那乙個。事實上假如p是奇質數的話,兩個解相等僅當x=0的時候,完全可以特判掉。
#includeusing namespace std;
typedef long long ll;
ll p, w;
struct complex ;
complex(ll x, ll y): x(x), y(y) {}
complex operator*(const complex&c)
};complex qpow(complex x, ll n)
return res;
}ll qpow(ll x, ll n, ll m)
return res;
}//求解 x^2 = a mod p 的x的兩個p範圍內的解中的其中乙個解,其中p是質數(2被特判掉了),無解返回-1
ll solve(ll a, ll p)
complex res(b, 1);
res = qpow(res, (p + 1) / 2);
ll x = res.x, y = (p - x) % p;
return x <= y ? x : y;
}int main()
}
模板 二次剩餘
又被二次剩餘調教了。以下,p是奇質數。如果存在乙個x,使得 x 2 n mod p 則n是p的乙個二次剩餘。勒讓德符號 frac 當n是p的二次剩餘,frac 1 當n不是p的二次剩餘,frac 1 當p n,frac 0 結論 frac n 定理 定理 對於方程 x 2 n mod p 有 fra...
二次剩餘小結
對於模數 n 和整數 a 若存在整數 x 滿足 x 2 equiv a mod n 則稱 x 是模 n 意義下的二次剩餘,否則是非二次剩餘 注 這裡討論的 x 滿足 x in 1,n 尤拉判別法 對於奇素數 p a 是模 p 意義下的二次剩餘當且僅當 a equiv 1 mod p 類似的,若 a ...
二次剩餘小記
看 text 的部落格看到的,發現似乎並沒有想象中的那麼難,就學了一下,過了板題,這裡記錄一下,暫時還是只會二次剩餘,n 次剩餘暫時先放一下。下文的 p 即是模數。我們稱 n 為模 p 意義下的二次剩餘當且僅當存在 x 使得 x 2 equiv n pmod p,x in mathbb 下文的 ma...