java實現 拓展歐幾里得演算法 exgcd
阿新 • • 發佈:2019-01-26
返回的陣列中,第一個值是最大公約數,第二個值表示C++語言實現中的x,第三個值表示y。
存在整數對 x,y ,使得 gcd(a,b)=ax+by
public static long[] ex_gcd(long a,long b){
long ans;
long[] result=new long[3];
if(b==0)
{
result[0]=a;
result[1]=1;
result[2]=0;
return result;
}
long [] temp=ex_gcd(b,a%b);
ans = temp[0];
result[0]=ans;
result[1]=temp[2];
result[2]=temp[1]-(a/b)*temp[2];
return result;
}