递归法:
int gcd(int m, int n){
int tmp;
if (m<n){ //m保存较大值,n保存较小值,不满足则交换二者的值
temp=m;m=n;n=temp;
}
if ( m%n == 0){ //如果余数为0则意味着n为m,n的最大公约数
return n;
}else{ //否则需要使用较小的数n和两数的相除余数m%n继续求解
return gcd(n,m%n);
}
}
迭代法:
int gcd(int m,int n){
int r;
while(n!=0){
r=m%n;
m=n;
n=r;
}
return m;
}