异想天开

What's the true meaning of light, Could you tell me why

公约数和公倍数

日期:2015-05-19 10:05:22
  
最后更新日期:2015-05-19 10:05:22
http://acm.nyist.net/JudgeOnline/problem.php?pid=40
描述
小明被一个问题给难住了,现在需要你帮帮忙。问题是:给出两个正整数,求出它们的最大公约数和最小公倍数。
输入
第一行输入一个整数n(0随后的n行输入两个整数i,j(0输出
输出每组测试数据的最大公约数和最小公倍数
样例输入
3
6 6
12 11
33 22
样例输出
6 6
1 132
11 66
解析:
[code lang="cpp"]
#include<stdio.h>
#include<stdlib.h>

int swap(int &a, int &b)
{
a=a^b;
b=a^b;
a=a^b;
return 0;
}

int gcd(int n, int m)
{
if (n<m){
swap(n,m);
}
while (n){
n=n%m;
if (0==n){
return m;
}
swap(n,m);
}
return 0;
}

int solve(){
int t;
scanf("%d",&t);
while (t--){
int n,m;
scanf("%d %d",&n,&m);

int a=gcd(n,m);
if (a){
printf("%d %d\n",a,(n*m)/a);
}
}
return 0;
}

int main()
{
solve();
return 0;
}
[/code]