1. 程式人生 > >【演算法資料結構Java實現】歐幾里得演算法

【演算法資料結構Java實現】歐幾里得演算法

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“

******************************************/