码迷,mamicode.com
首页 > 其他好文 > 详细

最大公约数(欧几里得算法)

时间:2014-06-24 23:58:40      阅读:406      评论:0      收藏:0      [点我收藏+]

标签:最大公约数   欧几里得算法   

public static long gcd(long m, long n) {
	while(n != 0) {
		long rem = m%n;
		m = n;
		n = rem;
		gcd(m,n);
	}
	return m;
}

在一次迭代中余数并不按照一个常数因子递减,然而,我们可以证明,在两次迭代以后,余数最多是原始值的一半。这就证明了,迭代次数至多是2logN=O(logN)从而得到运行时间。


定理:如果M>N,则M mod N<M/2

证明:如果N<= M/2,则由于余数小于N,固定理在这种情况下成立。另一种情形是N>M/2。但是此时M仅含有一个N从而余数为M-N<M/2,定理得证。


最大公约数(欧几里得算法),布布扣,bubuko.com

最大公约数(欧几里得算法)

标签:最大公约数   欧几里得算法   

原文地址:http://blog.csdn.net/qq1623267754/article/details/33950909

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!