c語(yǔ)言怎么求最小公倍數(shù)

小億
185
2023-12-27 02:41:46

可以通過(guò)先求兩個(gè)數(shù)的最大公約數(shù),然后再用兩個(gè)數(shù)的乘積除以最大公約數(shù),即可得到最小公倍數(shù)。

以下是求最小公倍數(shù)的C語(yǔ)言代碼示例:

#include <stdio.h>

// 求兩個(gè)數(shù)的最大公約數(shù)
int gcd(int a, int b) {
    if (b == 0) {
        return a;
    }
    return gcd(b, a % b);
}

// 求兩個(gè)數(shù)的最小公倍數(shù)
int lcm(int a, int b) {
    int gcdValue = gcd(a, b);
    return a * b / gcdValue;
}

int main() {
    int num1, num2;
    printf("請(qǐng)輸入兩個(gè)數(shù):");
    scanf("%d %d", &num1, &num2);
    int result = lcm(num1, num2);
    printf("最小公倍數(shù)為:%d\n", result);
    return 0;
}

在上述代碼中,gcd 函數(shù)用于求兩個(gè)數(shù)的最大公約數(shù),通過(guò)遞歸調(diào)用實(shí)現(xiàn)。lcm 函數(shù)通過(guò)調(diào)用 gcd 函數(shù)來(lái)求得最大公約數(shù),然后用兩個(gè)數(shù)的乘積除以最大公約數(shù)即可得到最小公倍數(shù)。

main 函數(shù)中,首先從用戶輸入獲取兩個(gè)數(shù),然后調(diào)用 lcm 函數(shù)來(lái)求得最小公倍數(shù),最后輸出結(jié)果。

0