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;
}
這個程式的工作原理是:
gcd
函數接受兩個數字a
和b
作為參數。- 如果
b
等於 0,則返回a
,因為a
是a
和0
的最大公因數。 - 否則,它調用自己,將
b
和a
模b
的餘數作為參數。 main
函式列印提示信息,並使用scanf
讀取兩個數字a
和b
。main
函式調用gcd
函數,並將a
和b
的值作為參數傳遞。main
函式列印出gcd
函數返回的值,即a
和b
的最大公因數。
請注意,這個程式假設你輸入的數字是正整數。如果你需要處理負數或小數,你可能需要對程式進行修改。