公約數和公倍數
描述小明被一個問題給難住了,現在需要你幫幫忙。問題是:給出兩個正整數,求出它們的最大公約數和最小公倍數。
輸入第一行輸入一個整數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;
}
複制