int gcd(int a,int b)
{
if(b==0)
return a;
else
return gcd(b,a%b);
}
辗转相除法的基本原理就是gcd(x,y)=gcd(x,y-x);
如果想要进一步提高gcd的效率,可以通过不断去除因子2来降低常数。
1,若x,y均为偶数,则gcd(x,y)=2*gcd(x/2.y/2);
2 ,若x为偶数,y为奇数,则gcd(x,y)=gcd(x/2,y);
3.若x为奇数,y为偶数,则gcd(x,y)=gcd(x,y/2);
4.若x,y均为奇数,则gcd(x,y)=gcd(x-y,y);