描述
In sixth grade, students are presented with different ways to calculate the Least Common Multiple (LCM) and the Greatest Common Factor (GCF) of two integers. The LCM of two integers a and b is the smallest positive integer that is a multiple of both a and b. The GCF of two non-zero integers a and b is the largest positive integer that divides both a and b without remainder.
For this problem you will write a program that determines both the LCM and GCF for positive integers.
输入
The first line of input contains a single integer N, (1 ≤ N ≤ 1000) which is the number of data sets that follow. Each data set consists of a single line of input containing two positive integers, a and b, (1 ≤ a,b ≤ 1000) separated by a space.
输出
For each data set, you should generate one line of output with the following values: The data set number as a decimal integer (start counting at one), a space, the LCM, a space, and the GCF.
样例输入
3
5 10
7 23
42 56
样例输出
1 10 5
2 161 1
3 168 14
题目来源
Greater New York 2008
分析:
求公倍数和公约数,当作复习欧几里得算法。
代码:
#include<bits/stdc++.h>
using namespace std;
int gcd(int a,int b)
{
int c;
while(a!=0)
{
c=a;
a=b%a;
b=c;
}
return c;
}
int gbs(int a,int b)
{
int c=max(a,b);
while(1>0)
{
if ((c%a0)&&(c%b0))
break;
c++;
}
return c;
}
int main()
{
int N,a,b;
cin>>N;
for (int i=1;i<=N;i++)
{
cin>>a>>b;
if (a>b) swap(a,b);
int x=gcd(a,b);
int y=gbs(a,b);
cout<<i<<’ ‘<<y<<’ '<<x<<endl;
}
return 0;
}