【C语言】写一个函数,并调用该函数求两个整数的最大公约数和最小公倍数

程序分析:

在数学中,两个数的最小公倍数=两个数的乘积/两数的最大公约数。

求两个数的最大公约数,运用辗转相除法:已知两个整数M和N,假定M>N,则求M%N。

如果余数为0,则N即为所求;如果余数不为0,用N除,再求其余数。。。直到余数为0,则除数就是M和N的最大公约数

代码:

#include<stdio.h>
int gcd(int a, int b)/*求最大公约数*/
{
    int r, t;
    if(a<b)
    {
        t = a;
        a = b;
        b = t;
    }
    r = a % b;
    while(r != 0)/*辗转相除法*/
    {
        a = b;
        b = r;
        r = a % b;
    }
    return b;
}
int lcm(int a, int b)/*求最小公倍数*/
{
    int r;
    r = gcd(a, b);
    return(a * b / r);
}
int main()
{
    int x, y;
    printf("请输入两个整数:\n");
    scanf_s("%d %d", &x, &y);
    printf("两个整数最大公约数为:%d\n", gcd(x, y));
    printf("两个数最小公倍数为:%d\n", lcm(x, y));
    return 0;
}

 

posted @ 2019-12-06 14:25  木子欢儿  阅读(8325)  评论(0编辑  收藏  举报