首页 > 其他 > 详细

最小公倍数

时间:2015-12-21 12:10:29      阅读:187      评论:0      收藏:0      [点我收藏+]

方法:利用最大公约数来求最小公倍数

原理:两个数的最大公约数与最小公倍数的乘积等于这两个数的积。

数学式表达:a*b=gcd(a,b)*lcm(a,b);

说明:gcd(a,b)为a,b两数的最大公约数,lcm(a,b)为a,b两数的最小公倍数.

代码实现:

#include<iostream>
using namespace std;

int gcd(int a,int b)
{

    return (b==0)?a:gcd(b,a%b);
}

int lcm(int a,int b)
{
    return a/gcd(a,b) * b; //思考:为什么不用a*b/gcd(a,b)呢?
}


int main()
{
    freopen("p.in","r",stdin);
    freopen("p.out","w",stdout);
    int a,b;
    cin>>a>>b;
    cout<<lcm(a,b)<<endl;

    return 0;

}

备注与说明:为什么不用a*b/gcd(a,b)呢?而用 a/gcd(a,b) * b,因为结果为int ,a,b太大的话,前一种先要计算a*b,而这个值可

能超出范围了。后一种做法是先做除法,除完后再乘,就回避了这种可能。

最小公倍数

原文:http://www.cnblogs.com/jjzzx/p/5062927.html

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