最小公倍数=两数乘积÷最大公约数
最大公约数:Greatest Common Divisor(GCD)
求最大公约数的三种方法:
1、辗转相除法(欧几里得算法)
①a÷b=c(d)if d==0, return b; else a=b;b=d;return ①;
例如求319和377的最大公约数
319÷377=0(319)
377÷319=1(58)
319÷58=5(29)
58÷29=2(0)
return 29
//辗转相除法
int GCD(int a,int b){
int temp;
while(1){
if(a%b==0)return b;
temp=a;
a=b;
b=temp%b;
}
}
2、更相减损法
int GCD(int a,int b){
int sum=1;
int min,max,temp;
while(1){
if(a%2==0&&b%2==0){
a/=2;b/=2;
sum=sum*2;