EXGCD算法的概念:
- 一种用来求解形如的同余方程的算法
EXGCD算法的时间复杂度:
- 求解的时间复杂度大约为
EXGCD算法的代码:
#include <cstdio>
#include <iostream>
using namespace std;
int a,b,x,y;
void exgcd(int a,int b){
if(b==0){
x=1,y=0;
return;
}
exgcd(b,a%b);
int temp=x;
x=y,y=temp-a/b*y;
return;
}
int main(){
cin>>a>>b;
exgcd(a,b);
//cout<<x<<" "<<y<<endl;
}
EXGCD的证明过程:
- 设
- (因为gcd(a,b)=gcd(b,a%b))
- 在C++中,(自动取整)
- 多项式恒等定理