求逆元

1.线性求 \(i\) 的逆元

for (int i = 2; i <= N; ++ i) {
    inv[i] = (mod - mod / i) * inv[mod % i] % mod;
}

2.费马小定理求 \(i\) 的逆元

inv[i] = QucikPower(i, mod - 2);

扩展欧几里得求 \(i\) 在模 \(p\) 意义下的逆元

void Exgcd(long long a, long long b, long long &x, long long &y) {
	if (b == 0) {
		x = 1;
		y = 0;
		return x;
	}
	long long x1, y1;
	Exgcd(b, a % b, x1, y1);
	x = y1;
	y = x1 - a / b * y1;
	return x; 
}

int x, y;
inv[i] = Exgcd(i, p, x, y);
posted @ 2023-06-15 09:44  觉清风  阅读(11)  评论(1编辑  收藏  举报