#include<iostream> using namespace std; //辗转相除法 int gcd(int a,int b)//最大公约数 { if(a<b) { int temp; temp = a; a = b; b = temp; } int k,r; k = a/b; r = a%b; if(r==0) return b; else return gcd(b,r); } //最小公倍数 = 积 /最大公约数 int lcm(int a,int b) //最小公倍数 { return a*b/gcd(a,b); } int main() { int num; cin>>num; int a,b; while(num--) { cin>>a>>b; cout<<gcd(a,b)<<" "<<lcm(a,b)<<endl; } return 0; }
原文地址:http://blog.csdn.net/think_ycx/article/details/45848089