问题描述:
输入两个正整数 m 和 n,求其最大公约数和最小公倍数。
输入说明:
输入两个正整数 m 和 n。
输出说明:
输出 m 和 n 的最大公约数和最小公倍数。
输入样例:
8 12
输出样例:
4 24
#include <stdio.h>
// 最大公约(gcd, greatest common divisor)
// 和最小公倍数(lcm)
int main() {
int m, n, i, j;
scanf("%d %d", &m, &n);
int max = m > n ? m : n, min = m < n ? m : n;
int gcd = min, lcm = max;
for (i = min; i > 0; i--) {
if (m % i == 0 && n % i == 0) {
gcd = i;
break;
}
}
for (j = max; j <= m * n; j++) {
if (j % m == 0 && j % n == 0) {
lcm = j;
break;
}
}
printf("%d %d\n", gcd, lcm);
return 0;
}