DropsBrowse Pastes
Login with GitHub

最大公因数&最小公倍数

May 9th, 2022Views: 67(0 unique)C
// 编写一个函数fun,然后设计主函数调用函数fun。函数fun的功能是:求出两个非零正整数的最大公约数(考虑递归和非递归两种方法,任选一种实现),
// 并作为函数值返回。再设计一个函数,函数的功能是计算两个非零正整数的最小公倍数。
#include <stdio.h>

int min(int, int, int);
int fun(int, int, int);

int main(void)
{
    int a, b, max;
    scanf("%d%d", &a, &b);
    max = (a > b) ? a : b;
    printf("最大公约数 = %d\n", fun(a, b, max));
    printf("最小公倍数 = %d\n", min(a, b, max));
}

int fun(int a, int b, int max)
{
    int num = 1;
    for (int i = 2; i < max; i++)
    {
        if((a % i == 0) && (b % i == 0))
        {
            num *= i;
            a /= i;
            b /= i;
            i = 1;
        }
    }
    return num;
}

int min(int a, int b, int max)
{
    return a * b / fun(a ,b ,max);
}