首页 > 其他 > 详细

求两个数的最大公约数和最小公倍数

时间:2018-07-05 11:40:18      阅读:144      评论:0      收藏:0      [点我收藏+]

求最大公约数利用辗转相除法:

long long gcd(long long a,long long b)
{
    if(b==0)
        return a;
    else
        return gcd(b,a%b);
} 

 

求最小公倍数时,利用两数的乘积除以这两个数的最大公约数即可:

long long lcm(long long a,long long b)
{
    long long tmp=a*b;
    tmp=tmp/gcd(a,b);
    return tmp;
}

完整代码如下,输入两个数n和m,输出这两个数的最大公约数和最小公倍数:

#include<iostream>
using namespace std;
long long gcd(long long a,long long b)
{
    if(b==0)
        return a;
    else
        return gcd(b,a%b);
} 
long long lcm(long long a,long long b)
{
    long long tmp=a*b;
    tmp=tmp/gcd(a,b);
    return tmp;
}
int main()
{
    long long n,m;
    cin>>n>>m;
    cout<<gcd(n,m)<<endl<<lcm(n,m);
    return 0;
}

 

求两个数的最大公约数和最小公倍数

原文:https://www.cnblogs.com/aininot260/p/9267398.html

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