gcd是最大公約數(GCD)函數,通常用於求解兩個或多個整數的最大公約數。
最大公約數,也稱最大公因數、最大公因子,指兩個或多個整數***有約數中最大的壹個。a,b的最大公約數記為(a,b)。常見的求最大公約數的方法有:質因數分解法、短除法、輾轉相除法、更相減損法。
GCD函數的語法格式為:GCD(number1,number2, ...),其中的Number1, number2, ... 為 1 至 255 個數值,如果參數為非整數,則截尾取整。
需要註意的是:如果參數為非數值型,則函數 GCD 返回錯誤值 #VALUE!。如果參數小於零,則函數 GCD 返回錯誤值 #NUM!。
在編輯函數時,還需註意兩個特例,壹是1 可被任何數值除盡,二是質數只有它本身和1可以做為除盡它的除數。
C語言求最大公因數的方法:
1、窮舉法(列舉法):最簡單最直觀的壹種方法。
具體步驟為:先求出兩個數的最小值min(最大公約數壹定小於等於兩個數的最小值),接著從最小值min遞減(循環結束條件為i > 0)。如果遇到壹個數同時為這兩個整數的因數,則使用break退出循環,這時得到的值i即為兩個正整數的最大公約數。
2、更相減損法:即尼考曼徹斯法,其特色是做壹系列減法,從而求得最大公約數。
3、輾轉相除法:又稱歐幾裏得算法,是指用於計算兩個非負整數a,b的最大公約數。應用領域有數學和計算機兩個方面。計算公式為GCD(a,b) = GCD(b,a mod b)。
具體步驟:先求出兩個數num1和num2的余數。然後將num2賦值給num1,讓上次取余時的除數num2作為下次取余時的被除數。同時將當前的余數作為下次取余的除數。這樣壹直地輾轉相除,直到余數為0,這時的除數num2就是要求的最大公因數。