C 程式設計 求最大公約數和最小公倍數

2021-09-26 23:03:32 字數 1162 閱讀 3825

解題思想:

1.輾轉相除法(歐幾里德演算法),定理:兩個整數的最大公約數等於其中較小的那個數和兩數相除餘數的最大公約數。

2.輾轉相減法(尼考曼徹斯法),其特色是做一系列減法,從而求得最大公約數。3.窮舉法 從上往下減,保證最大!

**實現:

#includeusing namespace std;

//輾轉相除法(歐幾里德演算法)

int measure1(int x, int y)

return z;

}//輾轉相減法(尼考曼徹斯法)

int measure2(int a,int b)

else

}return a;

}//窮舉法 從上往下減,保證最大!

int measure3(int x,int y)

return temp;

}void main(){

int x,y;

cout<

cin>>x;

cin>>y;

cout效果圖展示:

解題思想:

1.窮舉法,從兩者中最大的數開始,向上加,直到可以使對兩數同時取餘都為零。2.兩個整數的最小公倍數等於兩整數之積除以最大公約數。

**實現:

#includeusing namespace std;

void main(){

int n1, n2, max;

cout << "輸入兩個數: ";

cin >> n1 >> n2;

// 獲取最大的數

max = (n1 > n2) ? n1 : n2;

do {

if (max % n1 == 0 && max % n2 == 0)

{ cout << "lcm = " << max<效果圖展示:

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

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

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

1 求兩個數的最大公約數 include stdafx.h include includeusing namespace std int tmain int argc,tchar argv else while max min 0 cout num1 num2 最大公約數為 temp endl re...

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

本篇文章中求最大公約數的方法是輾轉相除法,又稱歐幾里德演算法 方法是用較大的數除以較小的數,求得餘數,將餘數變成除數,除數變成被除數,重複這個過程,直到餘數變成0。而求最小公倍數的方法則是用原本兩個數的乘積除以最大公約數。define crt select no warings include in...