当前位置:首页C语言 > 正文

C语言题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

作者:野牛程序员:2023-12-26 12:40:31C语言阅读 2771

题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 程序分析: (1)最小公倍数=输入的两个数之积除于它们的最大公约数,关键是求出最大公约数; (2)求最大公约数用辗转相除法(又名欧几里德算法)


输入两个正整数m和n,通过辗转相除法,计算它们的最大公约数和最小公倍数。

#include <stdio.h>

// 函数声明
int gcd(int x, int y);
int lcm(int x, int y);

int main() {
    // 输入两个正整数m和n
    int m, n;
    scanf("%d %d", &m, &n);

    // 计算最大公约数和最小公倍数
    int result_gcd = gcd(m, n);
    int result_lcm = lcm(m, n);

    // 输出结果
    printf("%d\\n", result_gcd);
    printf("%d\\n", result_lcm);

    return 0;
}

// 计算最大公约数的函数
int gcd(int x, int y) {
    int temp;
    while (y != 0) {
        temp = x % y;
        x = y;
        y = temp;
    }
    return x;
}

// 计算最小公倍数的函数
int lcm(int x, int y) {
    return x * y / gcd(x, y);
}

这是一个用C语言编写的程序,实现了输入两个正整数m和n,然后计算它们的最大公约数和最小公倍数。程序中使用了辗转相除法来求最大公约数。

野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击