【方法一】輾轉求余法
int gcd(int a,int b){ if(a<b)swap(a,b); if(a%b==0)return b; else gcd(b,a%b); }
【方法二】輾轉相減法
int gcd(int a,int b){ if(a<b)swap(a,b); if(a%b==0)return b; else gcd(b,a-b); }
【方法三】連續整數檢測法:從較小數的1/2開始從大到小測試,如果可以整除就是最大公約數。
int gcd(int a,int b){ if(a<b)swap(a,b); if(a%b==0)return b; for(int i=b/2+1;i>0;i--){ if(a%i==0&&b%i==0)return i; } }