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

Posted aininot260

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求两个数的最大公约数和最小公倍数相关的知识,希望对你有一定的参考价值。

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

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

 

以上是关于求两个数的最大公约数和最小公倍数的主要内容,如果未能解决你的问题,请参考以下文章

C语言求两个数的最大公约数和最小公倍数代码,为啥这里输出最大公约数的会输出两遍,初学者求详细解答

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

如何求两数的最大公约数?

Python 如何求得两个数的最大公约数

写一个方法,求两个数的最大公约数和最小公倍数。

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