最大公约和最小公倍数 C语言xdoj183

问题描述:
输入两个正整数 m 和 n,求其最大公约数和最小公倍数。

输入说明:
输入两个正整数 m 和 n。
输出说明:
输出 m 和 n 的最大公约数和最小公倍数。

输入样例:
8 12
输出样例:
4 24

#include 

// 最大公约(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;
}

最大公约和最小公倍数 C语言xdoj183_第1张图片

你可能感兴趣的:(C语言,c语言)