首页 > 其他 > 详细

最大公约数与最小公倍数

时间:2019-07-05 20:23:55      阅读:111      评论:0      收藏:0      [点我收藏+]

Date:2019-07-05 19:22:40

算法实现

 1 /*--------------------------------欧几里德算法(辗转相除法)-----------------------*/
 2 /*
 3 设a,b为正整数,则 gcd(a,b)=gcd(b,a%b);
 4 递归式:gcd(a,b) = gcd(b,a%b);
 5 递归边界:gcd(a,0) = a;
 6 */
 7 
 8 int gcd(int a, int b)
 9 {
10     if(b == 0)
11         return a;
12     else
13         return gcd(b, a%b);
14 }
15 
16 //更简洁的写法
17 int gcd_concise(int a, int b)
18 {
19     return !b ? a : gcd(b, a%b);
20 }
21 
22 /*
23 设a, b为正整数,则lcm(a,b)=(a*b)/gcd(a,b);
24 */
25 
26 int lcm(int a, int b)
27 {
28     return a/gcd(a,b)*b;    //考虑到a*b可能溢出
29 }

 

最大公约数与最小公倍数

原文:https://www.cnblogs.com/blue-lin/p/11140414.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!