c语言最大公约数和最小公倍数_算法 | 求最大公约数和最小公倍数

b4fad32c256479fb5829f7c116441e78.png

小学数学就学习了如何计算最大公约数(Greatest Common Factor,GCF)和最小公倍数(Lowest Common Multiple,LCM)。例如15和25的最大公约数是5,最小公倍数是75,数学老师会不厌其烦的用质数分解的方法讲解。那么,能不能用计算机来算?古希腊数学家欧几里得提出了最大公约数GCF的算法:

                    给出两个整数A和B

                    if B==0

                         则答案是A

                    else

                         答案是GCF(B,A%B)

这里%是取余运算,A%B的意思是A除以B,返回余数。例如5%2返回1,4%2返回0,即4能被2整除。

以上算法的大致思路是:如果B不等于0,则转为求B和A%B的最大公约数,并通过递归调用。来看一个例子

求35和25的最大公约数,过程如下表

a5ada5b92b8ba3de9f4af4b7b10ba7fa.png

有了求GCF的算法,求LCM就很简单了。求LCM关键是找到最大公约数GCF,算法如下

                    n=GCF(A,B)

                    LCM(A,B)=n*(A/n)*(B/n)

              或者LCM(A,B)=A / n * B

用Fortran来实现

46cf9d9b389e36566f53fced4615f525.png

44992745284a2763da1ae73d67cf5c1f.png

欧几里得的《几何原本》(Elements)是西方文明史上最有名气的著作之一,古往今来都作为标准教科书使用,书中展现了他大师级的逻辑推理。事实上,“证明题”就源自他的《几何原本》。该著作对后世的数学家和哲学家产生了深远影响。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值