码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-07-05 12:16:46      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:include   最小   公约数   names   pac   end   name   span   out   

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

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;
}

 

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

标签:include   最小   公约数   names   pac   end   name   span   out   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!