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
******************************************/