1.背景
欧几里得算法是一个求最大因子的快速算法。如果m,n存在最大因子k,假设m=x*n+r,那么m和n可以整出k的话,r也肯定可以整除k
因为定理:如果M>N,则M mod N<M/2 ,说明时间复杂度是O(log(n))
2.代码
package Algorithm_analysis; public class Euclid { public static void main(String[] args){ int m=63; int n=18; int remainder=0; while(n!=0){ remainder=m%n; m=n; n=remainder; } System.out.print(m); } }
/********************************
* 本文来自博客 “李博Garvin“
* 转载请标明出处:http://blog.csdn.net/buptgshengod
******************************************/