uva11388 - GCD LCM

版权声明:最终解释权归属Hern所有,恒! https://blog.csdn.net/qq_36761831/article/details/79946633
题意: 给出a,b两个数的最大公约数gcd 和 最小共倍数lcm, 现在要你求出a,b, 并且a是最小的. (a<=b);

解题思路:

       1. 求最小共倍数的时候是: lcm(a,b) = (a*b)/gcd(a,b) ==> a*b = lcm(a,b)*gcd(a,b); 

            并且最小共倍数肯定是最大公约数的整数倍.

       2. 即: a要是最小的, 那么最大公约数就是最小的, 最小共倍数就是b了.
#include <iostream>
#include <cstring>
#include <cmath>

using namespace std;

int main()
{
    int gcd, lcm;
    int T;
    cin>>T;
    while(T--)
    {
        cin>>gcd>>lcm;

        if(lcm % gcd != 0)
            {
                cout<<"-1"<<endl;
            }
        else
            {
                cout<<gcd<<" "<<lcm<<endl;
            }

    }
    return 0;
}


阅读更多
想对作者说点什么?
相关热词

博主推荐

换一批

没有更多推荐了,返回首页