最大公約數,最小公倍數

2021-07-29 22:04:32 字數 1126 閱讀 7099

兩個數最大公約數

輾轉相除法:

在數學中,輾轉相除法,又稱歐幾里得演算法,是求最大公約數的演算法。兩個整數的最大公約數是能夠同時整除它們的最大的正整數。輾轉相除法基於如下原理:兩個整數的最大公約數等於其中較小的數和兩數的差的最大公約數。

例如:

用(a,b)來表示a和b的最大公約數。

已知a,b,c為正整數,若a除以b餘c,則(a,b)=(b,c)。

求(252,105)

∵252=105×2+42 ∴(252,105)=(105,42)

∵105=42×2+21 ∴(105,42) =(42,21)

∵42=21×2 所以最大公約數為21;

兩個數的最大公約數最小公倍數

#include

#define swap(a,b) a=a^b,b=a^b,a=a^b

//輾轉相除法

int divisor(int a,int b)

int main()

n個數的最大公約數最小公倍數

最大公約數:

求出頭兩個的數最大公約數,再將它和大三個數求最大公約數直到陣列末尾形成遞迴

最小公倍數:

求出頭兩個的數最小公倍數,再將它和大三個數求最小公倍數直到陣列末尾形成遞迴

#include

#include

#define swap(a,b) a=a^b,b=a^b,a=a^b

//輾轉相除法求最大公約數

int divisor(int a,int b)

int main()

memcpy(b,a,sizeof(a));

i=0;

//求n個數的最大公約數

while(i<=n-2)

res=divi;

//求n個數的最小公倍數

i=0;

while(i<=n-2)//mult為最小公倍數,等於兩數相乘除以最大公約數

printf("%d %d",res,mult);

return

0; }

最大公約數 最小公倍數

求最大公約數最直接的辦法是從兩數中較小數與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 因此...

最大公約數 最小公倍數

求兩個正整數的最大公約數。input 輸入資料含有不多於50對的資料,每對資料由兩個正整數 0 n1,n2 232 組成。output 對於每組資料n1和n1,計算最大公約數,每個計算結果應佔單獨一行。sample input 6 5 18 12sample output 1 6 include i...