天天看點

公約數和公倍數

公約數和公倍數

描述小明被一個問題給難住了,現在需要你幫幫忙。問題是:給出兩個正整數,求出它們的最大公約數和最小公倍數。

輸入第一行輸入一個整數n(0<n<=10000),表示有n組測試資料; 随後的n行輸入兩個整數i,j(0<i,j<=32767)。輸出輸出每組測試資料的最大公約數和最小公倍數樣例輸入

3
6 6
12 11
33 22           

複制

樣例輸出

6 6
1 132
11 66           

複制

#include<iostream>
using namespace std;
int gcd(int a,int b)
{

    int min=(a<b)?a:b;
    int max=(a>b)?a:b;
    while(min!=0)
    {
    int k = max%min;
    max=min;
    min=k;
    }
    return max;

}
int main()
{
    int test ;
    int num1,num2;
    cin>>test;
    while(test--)
    {
        cin>>num1>>num2;
        int kk = (num1 * num2)/gcd(num1,num2);

        cout<<gcd(num1,num2)<<" "<<kk<<endl;

    }
    return 0;

}                   

複制