最小公倍数

求最小公倍数

http://www.nowcoder.com/questionTerminal/22948c2cad484e0291350abad86136c3

要求最小公倍数,需要求最大公约数,由于:最小公倍数 = 两数相乘/最大公约数
求最大公约数,可以利用辗转相除法,详细可参考:https://blog.csdn.net/huyr_123/article/details/81670972
利用辗转相除法求取最大公约数函数如下:

int gcd(int a,int b)
{
    if(a<b)
    {
        int temp = a;
        a = b;
        b = temp;
    }
    if(a%b==0) return b;
    else return gcd(b,a%b);
}

求得最大公约数问题迎刃而解,完整代码如下:

#include<iostream>

using namespace std;

int gcd(int a,int b)
{
    if(a<b)
    {
        int temp = a;
        a = b;
        b = temp;
    }
    if(a%b==0) return b;
    else return gcd(b,a%b);
}
int main()
{
    int ans;
    int a,b;
    cin>>a>>b;

    int tmp = gcd(a,b);
    ans = a*b/tmp;
    cout<<ans;

    return 0;
}
全部评论
最小公倍数一定是两个数的倍数,那么两数之中较大的那个数,与x(x从1递增)相乘,然后看是否能整除较小的数,如果可以,那么较大的数乘以x就是两数的最小公倍数,x最小为1,最大等于较小的那个数。不是吗?
4 回复 分享
发布于 2020-06-22 17:40

相关推荐

没有offer的小土豆:专业面试一般是分配面试官然后联系你面试 应该是还没给你分配对应面试官
点赞 评论 收藏
分享
评论
10
3
分享
牛客网
牛客企业服务