乘法逆元_

乘法逆元定义:若a∗x≡1(mod  b)a*x \equiv 1 (\mod b)a∗x≡1(modb),则xxx为aaa在mod  b\mod bmodb下的逆元作用:求bamod  p\frac{b}{a} \mod pab​modp,的1a\frac{1}{a}a1​在mod  p\mod pmodp下的整数取值求法:扩展欧几里得:前提:a⊥pa\perp pa⊥p(因为扩展欧几里得要求方程ax+by=1ax+by=1ax+by=1的a⊥ba \perp ba⊥b)做法:若是要求a∗x
摘要由CSDN通过智能技术生成

乘法逆元

定义:若 a ∗ x ≡ 1 ( m o d    b ) a*x \equiv 1 (\mod b) ax1(modb),则 x x x a a a m o d    b \mod b modb下的逆元

作用:求 b a m o d    p \frac{b}{a} \mod p abmodp,的 1 a \frac{1}{a} a1 m o d    p \mod p modp下的整数取值


求法:

扩展欧几里得:

前提: a ⊥ p a\perp p ap(因为扩展欧几里得要求方程 a x + b y = 1 ax+by=1 ax+by=1 a ⊥ b a \perp b ab
做法:若是要求 a ∗ x ≡ 1 ( m o d    b ) a*x \equiv 1(\mod b) ax1(modb),其实就是要求 a x + b y = 1 ax+by=1 ax+by=1 x x x的取值,扩展欧几里得求解即可
代码实现:
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define int long long
using namespace std;

void read(int &sum)
{
   
	sum=0;char last='w',ch=getchar();
	while (ch<'0' || ch>'9') last=ch,ch=getchar();
	while (ch>='0' && ch<='9') sum=sum*10+ch-'0',ch=getchar();
	if (last=='-') sum=
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值