最大公約數與最小公倍數之三種解法

2021-07-29 00:05:18 字數 1142 閱讀 5458

(一)採用「輾轉相除法+介質交換法」

#include

int max(int a,int b);//最大公約數函式的宣告

int main()

max=max(num1,num2);

printf("最大公約數為:%d\n",max);

printf("最小公倍數為:%d\n",num1*num2/max);

printf("\n");

printf("繼續計算請輸入1,退出請輸入0,請選擇:");

scanf("%d",&m);

if(m==0) flag=0;

}return0;}

int max(int a,int b)//最大公約數的計算

return a;

}

(二)採用「輾轉相減法+異或交換法」

且使用的是c++方法

#include

using

namespace

std;

class test

; void test::swap(int *a,int *b)//異或法交換位置

int test::max(int a,int b)//輾轉相減法

return a;

}

int main()

return

0; }

(三)採用「窮舉法+加和交換法」

#include

void swap(int

*a,int

*b);

int main()

printf("最大公約數為:%d\n",i);

printf("最小公倍數為:%d\n",num1*num2/i);

printf("繼續請輸入1,退出請按0:");

scanf("%d",&m);

if(m==0) flag=0;

}} void swap(int

*a,int

*b)//加和法

以上的三種解法,各有各的優點。且在編**時候,終於掌握指標的方法,而且將交換的方法中經常使用的值傳遞錯誤交換法理解了,使自己在以後的使用過程中不再犯錯誤。

最大公約數 最小公倍數

求最大公約數最直接的辦法是從兩數中較小數與2之間的所有整數中乙個乙個的找。但這個方法有點浪費。有兩種有名的方法 1.輾轉相除法2.更相減損之術這兩種方法比較有名,而且現在人教版的高中數學中已經介紹了這兩種方法。下面這個是第2個,因為它只需要加減法就可以,效率高。int maxfactor unsig...

最小公倍數 最大公約數

求最小公倍數演算法 最小公倍數 兩整數的乘積 最大公約數 求最大公約數演算法 1 輾轉相除法 有兩整數a和 b a b得餘數c 若c 0,則 b即為兩數的最大公約數 若c 0,則 a b,b c,再回去執行 例如求27和 15的最大公約數過程為 27 15 餘12 15 12餘3 12 3餘0 因此...

最大公約數,最小公倍數

兩個數最大公約數 輾轉相除法 在數學中,輾轉相除法,又稱歐幾里得演算法,是求最大公約數的演算法。兩個整數的最大公約數是能夠同時整除它們的最大的正整數。輾轉相除法基於如下原理 兩個整數的最大公約數等於其中較小的數和兩數的差的最大公約數。例如 用 a,b 來表示a和b的最大公約數。已知a,b,c為正整數...