最大公约数(辗转相除法)

循环:

 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 }

 

 posted on 2017-12-16 16:44  theFresh  阅读(97)  评论(0编辑  收藏  举报