C語言求最小公倍數與最大公約數(4種實現)

2021-08-15 16:09:52 字數 1201 閱讀 6829

一   最大公約數演算法:

1.輾轉相除思想

有整數a b;

(1)a%b得到餘數c

(2)若c==0,則b就是最大公約數

(3若c!=0,則a=b;b=c;繼續執行(1)

int getgreatestcommondivisor(int a, int b)//輾轉相除

return a;

}

2.相減法

有整數a b;

(1)若a>b,則a=a-b;

(2)  若a

(3)若a==b,則a(b)則就是兩數最大公約數

(4)若a!=b,繼續迴圈執行(1)

例如求3和9最大公約數

9-3=6(6>3)  6-3=3(3=3)因此3就是最大公約束

int getgreatestcommondivisor(int a, int b)//相減法

else

}return a;

}

3.窮舉法

不解釋了,直接上**,相信大家都能看懂

int getgreatestcommondivisor(int a, int b)//窮舉法

return t;

}

4.窮舉法改進

int getgreatestcommondivisor(int a, int b)

}return i;

}

二   最小公倍數演算法:

1.最小公倍數=兩數成積/最大公約數 也就是說只要算出了最大公約數,即可得到最小公倍數

2.窮舉法

int theleastcommonmultiply(int a, int b)

} return i;

}

三   窮舉法求多個數最大公約數與最小公倍數

int getgreatestcommondivisor(int a, int b,int c)

} return i;

}int theleastcommonmultiply(int a, int b,int c)

} return i;

}int main()

求最大公約數,最小公倍數

歐幾里德遞迴演算法,大數對小數取餘直到小數為0,大數為最大公約數 param m param n return static int maxcommondivisor euclid recursion int m,int n return m 劉徽兩數相減直到兩數相等,等數為最大公約數 param ...

求最小公倍數與最大公約數

最大公約數是指兩個數相同因子總最大的那個,比如35和42,最大公倍數是7。要求最大公倍數,最常用的演算法是輾轉相除法,詳見下面的 最小公倍數是指兩個數共有的倍數中最小的那個,比如35和42,最小公倍數是210,6和12,最小公倍數是12。兩個數如果有最大公約數的話,他們的最小公倍數就是他們的乘積處以...

求最大公約數與最小公倍數

首先,我們假設兩個正整數a和b,我們來求這兩個數的最大公約數和最小公倍數 重點一 數學概念 兩個數的乘積等於這兩個數的最大公約數和最小公倍數的乘積 也就是說,我們只需要求得最大公約數與最小公倍數其中乙個,便可以推出另乙個 重點二 輾轉相除法求最大公約數 舉個例子理解一下這個方法 例如 與 我們把大的...