前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >算法 | 求最大公约数和最小公倍数

算法 | 求最大公约数和最小公倍数

作者头像
fem178
发布2020-01-14 16:34:53
2.3K0
发布2020-01-14 16:34:53
举报

小学数学就学习了如何计算最大公约数(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的最大公约数,过程如下表

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

n=GCF(A,B)

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

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

用Fortran来实现

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数值分析与有限元编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档