C語言最小公倍數

在C語言中,你可以使用以下算法來找出兩個數字的最低公倍數:

  1. 使用埃拉托斯特尼質數篩法(Eratosthenes' sieve)來找出兩個數字的所有質因數。
  2. 對於每個質因數,檢查它在兩個數字中的出現次數,並將其乘積相乘。
  3. 將所有這樣的乘積相乘,得到最低公倍數。

以下是一個簡單的C語言程式,它演示了如何計算兩個數字的最低公倍數:

#include <stdio.h>
#include <math.h>

int gcd(int a, int b) {
    if (b == 0)
        return a;
    else
        return gcd(b, a % b);
}

int lcm(int a, int b) {
    int g = gcd(a, b);
    return (a / g) * b;
}

int main() {
    int a, b;
    printf("請輸入兩個數字以計算它們的最低公倍數: ");
    scanf("%d %d", &a, &b);
    printf("最低公倍數為: %d\n", lcm(a, b));
    return 0;
}

這個程式使用了一個簡單的遞歸算法來計算兩個數字的最大公約數(GCD),然後使用最大公約數來計算最低公倍數(LCM)。這個算法假設兩個數字都是正數,並且不超過INT_MAX。如果你需要處理負數或者大數字,你可能需要使用更複雜的算法。