多種演算法求最大公約數和最小公倍數

2021-07-29 05:11:57 字數 1227 閱讀 1693

演算法思路分析:求最大公約數的時候,在程式裡面定義了五個函式,輾轉相除法,輾轉相減法,窮舉法和menu函式,其中輾轉相除法用了兩種演算法包含了函式巢狀。最後定義menu,用了switch語句,當使用者選擇要運算的方法時候,系統呼叫函式運算出結果。求最大公倍數的時候,從上面幾個求最大公約數的方法裡面選擇乙個,最小公倍數=輸入的資料乘積/最大公約數。一種演算法是兩個兩個的進行求最小公倍數,最後的結果就是多個數的最小公倍數。另一種演算法是,求出多個數的乘積和最大公約數,求商即為最小公倍數。
求最大公約數

#include "stdafx.h"

#includeint i=1;

void fun1(int a,int b)//輾轉相除法1

temp--;

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

}void fun4(int a,int b)//輾轉相減法

else

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

}void menu()/* 介面*/ }

int main()

return 0;

} 求多組數的最大公倍數

公倍數1

#include "stdafx.h"

#include#define m 100

#define n 100

int fun4();

int fun5();

int fun4(int a,int b)//定義輾轉相除法

else

} int fun5(int a,int b)//定義計算公約數的函式

int main()

else

} int fun5(int a,int b)//定義計算公約數的函式

int main()

g=data[i][0];//g等於每一行的第乙個數

for(j=1;jfor(j=0;jprintf("第%d行的最小公倍數為%d\n",i+1,p);

} }

個人總結:在最初寫輾轉相除法的時候,每次只能輸入一組數,感覺這樣很浪費時間,於是我後來加了for迴圈,自己可以輸入幾組都可以,後來還用了函式巢狀使演算法更加簡化了。寫完了幾個演算法之後,我用了menu函式將多個演算法融合到一起,整個程式感覺更加精簡了。在完成最小公倍數的時候,兩個演算法想了很久。在完成程式之後,我突然感覺演算法真的好偉大!乙個完美的演算法真的可以讓程式更加精簡!以後還是要多加練習演算法!

求最大公約數和最小公倍 PHP

用程式求最大公約數和最小公倍數最容易想到的方法如下 求最大公約數 function max divisor a,b return 1 求最小公倍數 function min multiple a,b return a b 輾轉相除法求最大公約數 function max divisor2 a,b e...

python for練習最大公約數 最小公倍數

需求 輸入兩個數值 求兩個數的最大公約數和最小公倍數.最小公倍數 num1 num2 最大公約數 思路 1.最大公約數小於等於輸入兩個數中最小的數 2.利用迴圈,最後一次迴圈可以被兩個數同時整除的數為最大公約數。1.輸入兩個數值 num1 int input 第乙個數 num2 int input ...

CodeVS1012 最大公約數和最小公倍數問題

題目 題目描述 description 輸入二個正整數x0,y0 2 x0 100000,2 y0 1000000 求出滿足下列條件的p,q的個數 條件 1.p,q是正整數 2.要求p,q以x0為最大公約數,以y0為最小公倍數.試求 滿足條件的所有可能的兩個正整數的個數.輸入描述 input des...