NYOJ40. 公约数和公倍数(数论——欧几里得)

公约数和公倍数

时间限制: 1000 ms  |  内存限制: 65535 KB
难度: 1
描述
小明被一个问题给难住了,现在需要你帮帮忙。问题是:给出两个正整数,求出它们的最大公约数和最小公倍数。
输入
第一行输入一个整数n(0随后的n行输入两个整数i,j(0
输出
输出每组测试数据的最大公约数和最小公倍数
样例输入
3
6 6
12 11
33 22
样例输出
6 6
1 132
11 66


【分析】数论——欧几里得算法

#include 
int n;
int i,j;
int gcd(int a,int b)
{
	if(b==0)
		return a;
	return gcd(b,a%b);
}
int lcm(int a,int b)
{
	return a*b/gcd(a,b);
}
int main()
{
	int g,l;
	scanf("%d",&n);
	while(n--)
	{
		scanf("%d %d",&i,&j);
		g=gcd(i,j);
		l=lcm(i,j);
		printf("%d %d\n",g,l);
	}
	return 0;
}

你可能感兴趣的:(数论,NYOJ)