用c语言两个整数的最大公约数和最小公倍数,用C语言,求解两个正整数(至少一个为合数)的最大公约数和最小公倍数...

对于如何求解两个正整数的最大公约数和最小公倍数,在小学我们就接触了短除法,不过这种方法不易于转变为普适的算法。直到高中时,数学课本中有了算法的章节,其中就有了两个经典的算法——“辗转相除法”和“更相减损术”(如果忘记了,请自己百度下,也可以通过下面的例子总结规律。)——这两个是不错的求解最大公约数的方法,而且易于用计算机语言实现!(这是我在大学接触编程后才发现的。)

下面为6和10求最大公约数2的过程:

辗转相除法:

10 = 1 * 6 + 4;

6  = 1 * 4 + 2;

4  = 2 * 2 + 0;

2为6和10的最大公约数。 更相减损术: 10 – 6 = 4;

6  – 4 = 2;

4  – 2 = 2;

2为6和10的最大公约数。

只要求解出了最大公约数,求解最小公倍数将变得十分简单,可以使用一下公式:

MAX_yue * MIN_bei = A * B;

其中,A、B为两个正整数,MAX_yue为A和B的最大公约数,MIN_bei为A和B的最小公倍数。

下面将是用C语言实现“求解两个正整数(这里限定为:至少有一个数为合数。原因很简单,如果两个值都为素数,那么这两个值一定互为素数,如果使用下面的算法计算,效率会比较低。当然,可以先判断这两个数是否为素数,如果都为素数就不再计算,直接输出结果!)的最大公约数和最小公倍数”算法的源码,仅供参考!

//求两个正整数的最大公约

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值