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++中,
(自动取整)
-
-
多项式恒等定理