#include <stdio.h>
int main() {
int i, m, n, t, a, b, c, d;
scanf("%d,%d", &m, &n);
if (m < n) { // ensure m >= n
t = m;
m = n;
n = t;
}
// find m*a == n*b, m*a is 最小公倍数
for (a = 1; a < m; a++) {
for (b = 1; b <= m; b++) {
c = m * a;
d = n * b;
if (d == c)
goto out; // here
}
}
out:
printf("最小公倍数为 %d\n", d);
printf("最大公约数为 %d\n", m * n / d);
return 0;
}
// 有更简单的方法来解决这个问题
// 最大公约数 Greatest Common Divisor
// 辗转相除法
// int gcd(int a, int b) { return a == 0 ? b : gcd(b % a, a); }
// 最小公倍数 Leatest Common Multiple
// int lcm(int a, int b) { return a * b / gcd(a, b); }
// int main(void) {
//
int m, n;
//
scanf("%d,%d", &m, &n);
//
printf("gcd(%d,%d)=%d\n", m, n, gcd(m, n));
//
printf("lcm(%d,%d)=%d\n", m, n, lcm(m, n));
//
return 0;
// }
[此贴子已经被作者于2023-10-1 20:48编辑过]