欧几里得算法(又称辗转相除法)用于计算两个数的最大公约数。
首先用较小的数去除较大的数,求出余数,然后用除数做被除数,余数做除数,进行求余运算,重复同样的操作,直到余数为零,此时最后的除数,则是它俩的最大公约数,如下图
代码如下
#include<stdio.h>
int CommonFactor(int m,int n){
int r=m%n;
while(r!=0){
m=n;
n=r;
r=m%n;
}
return n;
}
int main(){
printf("%d\n",CommonFactor(65,42));
}