//a>b
int gcd(int a,int b){
if(b==0) return a;
return gcd(b,a%b);
}
//如果a和b的最大公约数是m,那么即是a=nb+(a-nb)和b有最大公约数m,由于nb与b的最大公约数是b>=m,b能整除m,因此a-nb也能整除m,即把问题转化为了b与a-nb(a%b)求最大公约数问题gcd(b,a%b),当a%b==0时,即a-nb==0,则此时b就是最大公约数。
//a>b
int gcd(int a,int b){
if(b==0) return a;
return gcd(b,a%b);
}
//如果a和b的最大公约数是m,那么即是a=nb+(a-nb)和b有最大公约数m,由于nb与b的最大公约数是b>=m,b能整除m,因此a-nb也能整除m,即把问题转化为了b与a-nb(a%b)求最大公约数问题gcd(b,a%b),当a%b==0时,即a-nb==0,则此时b就是最大公约数。