C語言計算最大公因數

在C語言中,你可以使用埃拉托斯特尼質數篩選法(Aho-Corasick算法)來找到兩個數字的最大公因數(GCD)。這個算法是基於歐幾里得算法(Euclidean algorithm)的,它可以在線性時間內找到兩個數字的GCD。

以下是一個簡單的C程式,它使用埃拉托斯特尼質數篩選法來找到兩個數字的GCD:

#include <stdio.h>

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

int main() {
    int a, b;
    printf("請輸入兩個數字:");
    scanf("%d %d", &a, &b);

    int gcd_value = gcd(a, b);
    printf("最大公因數是:%d\n", gcd_value);

    return 0;
}

這個程式的工作原理是:

  1. gcd 函數接受兩個數字 ab 作為參數。
  2. 如果 b 等於 0,則返回 a,因為 aa0 的最大公因數。
  3. 否則,它調用自己,將 bab 的餘數作為參數。
  4. main 函式列印提示信息,並使用 scanf 讀取兩個數字 ab
  5. main 函式調用 gcd 函數,並將 ab 的值作為參數傳遞。
  6. main 函式列印出 gcd 函數返回的值,即 ab 的最大公因數。

請注意,這個程式假設你輸入的數字是正整數。如果你需要處理負數或小數,你可能需要對程式進行修改。