給定質數 。求所有 分解 分解 P (≤1e9)、K (≤1e5)、A (0≤Ax ∈ [0,P-1] 滿足 x^K ≡ A (mod P)。解法框架
P 的**原根** g(生成元)。t 使 g^t ≡ A (mod P)。x = g^w,則 g^{wK} ≡ g^t ⇒ wK ≡ t (mod P-1)。K·w ≡ t (mod P-1),用**擴展歐幾里得**求所有解 w。w,x = g^w mod P 即為答案。關鍵子算法
原根查找
P-1 質因子,檢查候選 g 是否對所有質因子 q 滿足 g^{(P-1)/q} ≠ 1。BSGS (Baby-Step Giant-Step)
m = ceil(√P)。預計算 g^{0..m-1} 存哈希表。巨步計算 A·g^{-jm} 查表。時間 O(√P)。線性同餘方程
K·w ≡ t (mod M),M=P-1。
d = gcd(K,M),若 d∤t 無解。
否則約分:(K/d)·w ≡ t/d (mod M/d),求逆元得一組解,再加 M/d 得所有 d 個解。特殊情況
A=0:唯一解 x=0。P=2:直接枚舉 x=0,1。複雜度
P-1 O(√P),BSGS O(√P),擴展歐幾里得 O(log P)。P≤1e9 ⇒ √P≤31623,極快。