求最大公约数和最小公倍数

非常easy的数学问题。只是大家是否可以准确实现?

求最大公约数(greatest common divisor)的方法:

一、辗转相除

①设有两个正整数i、j。 且i>j;

②计算c=i%j。

③若c等于0,则j是i和j的最大公约数;若c不等于0,则i=j。j=c。

④反复②③直到求得最大公约数;


二、相减法

①设有两正整数i、j。

②若i等于j,则i或j就是两数的最大公约数;

③若i>j,i=i-j ;否则,j=j-i。

④反复②③直到得到最大公约数


三、暴力枚举

①设有两正整数i、j。

②如果i<j,令k=i,

③i。j分别对k求余,若余数都为0,则k为i、j最大公约数;否则k--,继续运行③,直到求出两数最大公约数;


求最小公倍数(least common multiple)的方法:

一、暴力枚举

①设有正整数i,j。最好还是设i>j。

②令k=i;

③k分别对i。j求余,若余数均为零,则k为i。j的最小公倍数。否则令k+=i。反复③,直到求出最小公被数;


二、依据最大公约数和最小公倍数的关系求解

LCM(i,j) = i*j / GCD(i,j)。

两正整数的最小公倍数等于两数的积除以两数的最大公约数,最大公约数可以由前面的公式计算;




转载于:https://www.cnblogs.com/ldxsuanfa/p/10743818.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值