(C语言练习) 用函数来求最大公因数和最小公倍数

(C语言练习) 用函数来求最大公因数和最小公倍数

首先我们要知道最大公因数和最小公倍数怎么求
最大公因数 :用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。
最小公倍数: 最小公倍数=两数的乘积/最大公约(因)数
//定义最大公因数的函数
int max_GongYinShu(int a,int b)
{
     
    /*最大公因数的算法   
    用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。
    如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。
    */

    if (a < b)
    {
     
        int t = a;
        a = b;
        b = t;
    }
    //因为0不能做被除数
    while (b != 0) 
    {
     
        int w = a % b;     //计算余数     
        a = b;             //程序能执行到这里说明a除以b有余数 然后换位,再将余数和a比较 ,直到最后余数为0
        b = w;
    }
    return a;               //因为是求最大公因数,所以返回 a
}

//最小公倍数  函数
int min_GongBeiShu(int a, int b)
{
     
    /*
    *  最大公倍数的算法
    *  最小公倍数=两数的乘积/最大公约(因)数
    */
    return a * b / max_GongYinShu(a, b);
}
int main()
{
     
    int a, b,c, m, n;//定义所需的变量
    printf("请输入2个数\n");
    scanf_s("%d %d", &a, &b);


    m = max_GongYinShu(a, b);

    n = min_GongBeiShu(a, b);

    printf("最大公因数为%d\n", m);
    printf("最小公倍数为%d\n", n);


}

输出结果

请输入2个数
16 18
最大公因数为2
最小公倍数为144

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