GCD and LCM
Time Limit : 1 sec, Memory Limit : 65536 KB
Japanese version is here
GCD and LCM
Write a program which computes the greatest common divisor (GCD) and the least common multiple (LCM) of given a and b (0 < a, b ≤ 2,000,000,000). You can supporse that LCM(a, b) ≤ 2,000,000,000.
Input
Input consists of several data sets. Each data set contains a and b separated by a single space in a line. The input terminates with EOF.
Output
For each data set, print GCD and LCM separated by a single space in a line.
Sample Input
8 6
50000000 30000000
Output for the Sample Input
2 24
10000000 150000000 水题不解释
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream> using namespace std; typedef long long ll; int gcd(int x,int y) {
return y > ? gcd(y,x % y) : x;
}
int main() { int a,b;
while(~scanf("%d%d",&a,&b)) {
printf("%d ",gcd(a,b));
printf("%lld\n",(ll)a / gcd(a,b) * b);
} }