题意:求两数最大公约数和最小公倍数。
类型:辗转相除法
算法:gcd(a,b)=gcd(b,a%b),lcm(a,b)=a*b/gcd(a,b)。
#include <cstdio>
#include <iostream>
using namespace std;
int gcd(int a, int b) {
for(int t; t = a % b; a = b, b = t);
return b;
}
int main() {
int a, b, g;
long long l;
while(scanf("%d%d", &a, &b) != EOF) {
g = gcd(a, b);
l = 1ll * a * b / g;
printf("%d %lld
", g, l);
}
return 0;
}