有两个数 x、y
,最大公约数g
是满足x%g==0&&y%g==0
最大那个
任何整数与0的最大公约数是其本身,因为0除以任何数都为0。
方法一
int gcd(int x,int y)
{
if(x==0)return y;
if(y==0)return x;
int min;
if(x>y) //取小值,最大公约数小于等于小值(0除外)
{
min=y;
}else{
min=x;
}
for(int i=min;i>=1;i--)
{
if(x%i==0&&y%i==0) return i;
}
return 1;
}
方法二
int gcd(int x,int y)
{
return y==0?x:gcd(y,x%y);
}