數字2的乘法逆元

2021-10-06 18:56:49 字數 708 閱讀 4001

數字2的乘法逆元

快捷計算方式如下

inv2=mod-mod/2;

推導如下

摘自奇質數是既是奇數又是質數的數

2是唯一的偶質數,簡而言之,以下推導對p=2不適用,其它質數都適用。

對上式的補充說明:

k=m%i=m-m/i*i

t*i=m/i*i

t*i+k=m/i*i+m%i=m/i*i+m-m/i*i=m,請注意m%m=0

對上式的補充說明:

inv[i]=(-m/i)*inv[m%i]%m

進一步處理

注意:m*inv[m%i]%m=0

inv[i]=(-m/i)*inv[m%i]%m+m*inv[m%i]%m

inv[i]=(m-m/i)*inv[m%i]%m

typedef  long long ll;

const int n = 1e5 + 5;

int inv[n];

void inverse(int n, int p)

}

乘法逆元及逆元求法

模運算 取餘運算,即a除以b得到的餘數,記為mod,又記為 模運算過程中,加減乘都可以先對a,b進行 p,然後再進行加減乘,最後再 p,結果不變 運算子優先順序,模運算和乘除法的運算子優先順序是一樣的 同餘 a和b除以p得到的餘數相同,即p可以整除 a b 求解 cfrac mod p 的值,因為除...

模板 乘法逆元

適用 求某乙個數在模意義下的乘法逆元。如果a p互質,那麼有ap a就是p的倍數,所以有ap a modp ap 1 1 modp 所以只要打乙個快速冪就ok了。code include using namespace std int n,p int power int x,int k return...

模板 乘法逆元

這是一道模板題 給定n,p求1 n中所有整數在模p意義下的乘法逆元。輸入格式 一行n,p 輸出格式 n行,第i行表示i在模p意義下的逆元。輸入樣例 1 複製10 13 輸出樣例 1 複製179 108112 534 1 n 3 106,n1 n 3 106,n輸入保證 p p p 為質數。先扔個線性...