//書本第四章第01題,分別求出兩個整數的最大公約數和最小公倍數,用主函式呼叫兩個函式,並輸出結果,兩個整數由鍵盤輸入。
/* 最小公倍數_--解法一
借助最大公約數求最小公倍數
步驟:一、利用輾除法或其它方法求得最大公約數;
二、 最小公倍數等於兩數之積除以最大公約數。
最小公倍數--解法二
質因數分解
舉例:12和27的最小公倍數 12=2×2×3 27=3×3×3
必須用裡面數字中的最大次方者,像本題有3和3的立方,
所以必須使用3的立方(也就是3*3*3),不能使用3
所以: 2×2×3×3×3=4×27=108
兩數的最小公倍數是108
最大公約數原理
如果有乙個自然數a能被自然數b整除,則稱a為b的倍數,b為a的約數。
幾個自然數公有的約數,叫做這幾個自然數的公約數。公約數中最大的乙個公約數,稱為這幾個自然數的最大公約數。
例: 在2、4、6中,2就是2,4,6的最大公約數。
早在西元前300年左右,歐幾里得就在他的著作《幾何原本》中給出了高效的解法——輾轉相除法。
輾轉相除法使用到的原理很聰明也很簡單,假設用f(x, y)表示x,y的最大公約數,
取k = x/y,b = x%y,則x = ky + b,
如果乙個數能夠同時整除x和y,則必能同時整除b和y;
而能夠同時整除b和y的數也必能同時整除x和y,
即x和y的公約數與b和y的公約數是相同的,其最大公約數也是相同的,
則有f(x, y)= f(y, y % x)(y > 0),
如此便可把原問題轉化為求兩個更小數的最大公約數,
直到其中乙個數為0,剩下的另外乙個數就是兩者最大的公約數。
例如,12和30的公約數有:1、2、3、6,其中6就是12和30的最大公約數。
*///第四章第01題,分別求出兩個整數的最大公約數和最小公倍數,用主函式呼叫兩個函式,並輸出結果,兩個整數由鍵盤輸入。
#includeusing namespace std;
//輾轉相除法
inline int gongyue(int x,int y)
int main()
{//輸入整數
cout<<"請輸入兩個整數並用空格間開:";
int a,b;
cin>>a>>b;cout<
求最大公約數,最小公倍數
歐幾里德遞迴演算法,大數對小數取餘直到小數為0,大數為最大公約數 param m param n return static int maxcommondivisor euclid recursion int m,int n return m 劉徽兩數相減直到兩數相等,等數為最大公約數 param ...
求最大公約數和最小公倍數
本篇文章中求最大公約數的方法是輾轉相除法,又稱歐幾里德演算法 方法是用較大的數除以較小的數,求得餘數,將餘數變成除數,除數變成被除數,重複這個過程,直到餘數變成0。而求最小公倍數的方法則是用原本兩個數的乘積除以最大公約數。define crt select no warings include in...
求最大公約數和最小公倍數
輾轉相除法求最大公因數 輾轉相除法 簡單來說 兩個數,用較大的數除以較小的數,得到第一餘數,在用較小的數除以第乙個餘數,得到第二餘數,在用第二個餘數除以第一餘數,重複過程,直到到餘數為0 那麼最後乙個餘數就是這兩個數的最大公約數 舉例說明 a 36,b 10 1.36除以10得3,餘6 2.10除以...