首页 > 代码库 > 辗转相除法
辗转相除法
辗转相除法(欧几里得算法)是求最大公约数的算法,首先用较大的数除以较小的数,求得商与余数,把余数作为除数,即用原来的除数除以余数,求得商与余数。以此类推,直到余数为零时,除数即为原来两数的最大公约数。
一.递归算法
1 function gcd(a, b) 2 if a<b 3 swap(a,b); //交换a,b的值 4 if b==0 5 then return a; 6 else 7 return gcd(b, a mod b); //mod函数为求余函数相当于% 8 end
二.循环版本
1 function gcd(a,b) 2 if a<b 3 then swap(a,b); 4 while(b!=0) 5 { 6 c = a mod b; 7 a = b; 8 b = c; 9 } 10 return a; 11 end
辗转相除法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。