文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Euclid's G.C.D 求最大公约数算法

Euclid's G.C.D 求最大公约数算法

时间:2010-10-29  来源:古兮之

c语言课本上有求最大公约数算法(呵呵,来自于欧几里德几何学):
假设m , n 两个数(且m > n)
(1) k = m % n;
(2) if k == 0 , 最大公约数即为n;
(3) else m = n , n = k; goto (1);
算法很简单,同时也很佩服古人的聪明才智。

Euclid求最大公约数算法是对欧几里德算法的一种改进(个人认为)。由于欧几里德算法里出现了取模运算,开销比较大,所以在Euclid算法里采用了加减运算。具体算法如下:
假设m , n 两个整数(且m > n)
(1)if m < n , swap(m,n)
(2)m = m - n;
(3)if m!=0 goto (1) else break;
(4)n为最大公约数
举个例子:
m = 20 , n = 8;
m = 20 - 8 = 12;
12 > 8;
m = 12 - 8 = 4;
4 <  8;
m = 8; n = 4;
m = 8 - 4 = 4;
4 = 4;
m = 4 - 4 = 0;
result : n = 4;
分析这个算法,其实思想很简单,就是把除法改为减法了,在欧几里德算法里,采用了取模操作得到了余数,现在了,通过减法(m-n)取得了余数。
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载