最大公约数(辗转相除法)
循环:
1 int gcd(int a,int b) 2 { 3 int r; 4 while(a>0) 5 { 6 r=b%a; 7 b=a; 8 a=r; 9 } 10 return b; 11 }
递归:
1 int gcd(int a,int b) 2 { 3 return a==0?b:gcd(b%a,a); 4 }
最小公倍数
1 int lcm(int a,int b) 2 { 3 return a*b/gcd(a,b); 4 }
最大公约数(辗转相除法)
循环:
1 int gcd(int a,int b) 2 { 3 int r; 4 while(a>0) 5 { 6 r=b%a; 7 b=a; 8 a=r; 9 } 10 return b; 11 }
递归:
1 int gcd(int a,int b) 2 { 3 return a==0?b:gcd(b%a,a); 4 }
最小公倍数
1 int lcm(int a,int b) 2 { 3 return a*b/gcd(a,b); 4 }