历史上第一个算法是欧几里得算法,即辗转相除法。
用于求解两个正整数的最大公约数。
定理:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数
例子:
假如需要求 1997 和 615 两个正整数的最大公约数,用欧几里德算法,是这样进行的:
当被加的数为 0 时,就得出了 1997 和 615 的最大公约数 1。
要是自己求,有点麻烦,但是若是用代码实现,真到想不到的简单。
Java版
int divisor(int m,int n) { if (m % n == 0) { return n; } else { return divisor(n,m % n); } }
JavaScript版
function gcd(a,b){ var t; if(a<b) t=b,b=a,a=t; while(b!=0) t=b,b=a%b,a=t; return a; }