最小公倍数(HDU 1108)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuewenyao/article/details/81132100

题目链接

给定两个正整数,计算这两个数的最小公倍数。

Input

输入包含多组测试数据,每组只有一行,包括两个不大于1000的正整数.

Output

对于每个测试用例,给出这两个数的最小公倍数,每个实例输出一行。

Sample Input

10 14

Sample Output

70

题解:最小公倍数=两数的乘积/最大公约(因)数, 解题时要避免和最大公约(因)数问题混淆。 最小公倍数的适用范围:分数的加减法,中国剩余定理(正确的题在最小公倍数内有解,有唯一的解)。

AC代码

#include <iostream>
#include<cstdio>
using namespace std;
int gcd(int x,int y)
{
    while(x!=y)
    {
        if(x>y)
            x = x - y;
        else
            y=y-x;
    }
    return x;
}
int main()
{
    int a , b ;
    while(cin>>a>>b)
    {
        cout<<(a * b/gcd(a,b))<<endl;
    }
    return 0;
}

我们应该还都知道求最大公约数的函数吧,,哈哈那就是__gcd(a,b)这个神奇的函数,__gcd(a,b)就是求a和b的最小公约数(公因数),这个函数在   #include<algorithm>  这个头文件里,所以我们还可以省的就是gcd这个函数,,我们可以直接看一下简化代码:

#include <iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
    int a , b ;
    while(cin>>a>>b)
    {
        cout<<(a * b/__gcd(a,b))<<endl;
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/yuewenyao/article/details/81132100