概念:
得到
給定nn組ai,piai,pi,其中pipi是質數,求aiai模pipi的乘法逆元,若逆元不存在則輸出impossible。
注意:請返回在0∼p−10∼p−1之間的逆元。
乘法逆元的定義
若整數b,mb,m互質,並且對於任意的整數 aa,如果滿足b|ab|a,則存在乙個整數xx,使得a/b≡a∗x(mod m)a/b≡a∗x(mod m),則稱xx為bb的模mm乘法逆元,記為b−1(mod m)b−1(mod m)。輸入格式bb存在乘法逆元的充要條件是bb與模數mm互質。當模數mm為質數時,bm−2bm−2即為b的乘法逆元。
第一行包含整數nn。
接下來nn行,每行包含乙個陣列ai,piai,pi,資料保證pipi是質數。
輸出格式
輸出共nn行,每組資料輸出乙個結果,每個結果佔一行。
若aiai模pipi的乘法逆元存在,則輸出乙個整數,表示逆元,否則輸出impossible。
資料範圍
1≤n≤1051≤n≤105,
1≤ai,pi≤2∗1091≤ai,pi≤2∗109
輸入樣例:
3
4 38 5
6 3
輸出樣例:
1
2impossible
#include #include using namespace std;
typedef long long ll;
//a^k % p
int qmi(int a, int k, int p)
return res;//返回res}
int main()
return 0;
}
快速冪求逆元
費馬小定理 在模為 素數 p的情況下,有費馬小定理 a p 1 1 mod p 那麼a p 2 a 1 mod p 也就是說a的逆元為a p 2 而在模 不為素數 p的情況下,有尤拉定理 a phi m 1 mod m a m 同理a 1 a phi m 1 因此逆元x便可以套用快速冪求得了x a ...
演算法 快速冪,快速冪求逆元
基本思想 3 11 11 1011 3 1 3 3 2 9 3 4 81 3 8 6561 3 11 3 9 6561 第一種 當資料範圍m,k,p 10 9 int qmi int m,int k,int p return res 值得一提 k 1 除以2向0取整 詳細可以看狀態壓縮dp 內含位運...
快速冪及求逆元
求a k p,1 a,k,p 10 9 include include using namespace std typedef long long ll ll qmi int a,int b,int p return res int main 如果用暴力的話,那麼就是o n 10 9,而快速冪則是l...