每日程式C語言10 歐幾里德演算法

2021-10-17 03:26:36 字數 848 閱讀 6703

題目:輸入兩個正整數m和n,求其最大公約數和最小公倍數

輾轉相除法

輾轉相除法是古希臘求兩個正整數的最大公約數的演算法,也叫歐幾里德演算法,其方法是用較大的數除以較小的數,上面較小的除數和得出的餘數構成新的一對數,繼續做上面的除法,直到出現能夠整除的兩個數,其中較小的數(即除數)就是最大公約數。以求136和93的最大公約數為例,操作如下:

168/93=1 ……75

93/75=1……18

75/18=4……3

18/3=6

所以3就是168和93的最大公約數

遍曆法

void

fun(

int m,

int n)

a=m;

b=n;

//讓a等於較大的數,讓b等於較小的數

while

(b!=0)

printf

("最大公約數是:%d\n"

,a);

printf

("最小公倍數是:%d\n"

,m*n/b)

;}

void

fun2

(int m,

int n)

else

while

(max%m!=

0|| max%n!=0)

y=max;

printf

("最大公約數:%d\n最小公倍數:%d\n"

,x,y);}

}

輾轉相除法(歐幾里德演算法)的學習和使用

對於兩個數的換位置,可以使用昨天剛鞏固的條件運算子的使用

while迴圈與for迴圈的區別與使用

每日程式C語言16 找出比賽對手名單

兩個桌球隊進行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。以抽籤決定比賽名單。有人向隊員打聽比賽的名單。a說他不和x比,c說他 不和x,z比,請程式設計序找出三對賽手的名單 不難發現,甲乙兩隊中隊員都是順序編號的,我們可以以此來寫迴圈 int main cout a對 a對 c,b對...

每日程式C語言29 將陣列逆序輸出

將乙個陣列逆序輸出 可以借用另乙個陣列,來存放當前陣列的逆序 也可以讓當前陣列的首元素和末尾元素互換,第二個元素和倒數第二個元素互換,依次進行 void fun1 int a 借用另乙個陣列來逆序存放陣列 void fun2 int a 陣列的第乙個和最後乙個數互換,第二個和倒數第二個互換,依次類推...

每日程式C語言49 猴子分桃子問題

海灘上有一堆桃子,五隻猴子來分。第一只猴子把這堆桃子平均分為 五份,多了乙個,這只猴子把多的乙個仍入大海中,拿走了乙份。第二隻猴 子把剩下的桃子又平均分成五份,又多了乙個,它同樣把多的乙個扔入大海,拿走了乙份,第三,第四,第五只猴子都是這樣做的,問海灘上原來最少有 多少個桃子?這個題主要是找到剩餘桃...