C語言最大公約數(shù)和最小公倍數(shù)
從鍵盤輸入兩個正整數(shù) a 和 b,求其最大公約數(shù)和最小公倍數(shù)。
算法思想
利用格式輸入語句將輸入的兩個數(shù)分別賦給 a 和 b,然后判斷 a 和 b 的關(guān)系,如果 a 小于 b,則利用中間變量 t 將其互換。再利用輾轉(zhuǎn)相除法求出最大公約數(shù),進(jìn)而求出最小公倍數(shù)。最后用格式輸出語句將其輸出。
程序代碼
#include <stdio.h>
int main()
{
int a,b,c,m,t;
printf("請輸入兩個數(shù):\n");
scanf("%d%d",&a,&b);
if(a<b)
{
t=a;
a=b;
b=t;
}
m=a*b;
c=a%b;
while(c!=0)
{
a=b;
b=c;
c=a%b;
}
printf("最大公約數(shù)是:\n%d\n",b);
printf("最小公倍數(shù)是:\n%d\n",m/b);
}
調(diào)試運行結(jié)果
當(dāng)輸入的兩個數(shù)為 15 和 65 時,打印出的結(jié)果如下所示:
請輸入兩個數(shù):
15 65
最大公約數(shù)是:
5
最小公倍數(shù)是:
195
當(dāng)輸入的兩個數(shù)為 16 和 72 時,打印出的結(jié)果如下所示:
請輸入兩個數(shù):
16 72
最大公約數(shù)是:
8
最小公倍數(shù)是:
144
總結(jié)
實例中用到了輾轉(zhuǎn)相除法來求最大公約數(shù)。在求最小公倍數(shù)時要清楚最大公約數(shù)和最小公倍數(shù)的關(guān)系,即兩數(shù)相乘的積除以這兩個數(shù)的最大公約數(shù)就是最小公倍數(shù)。
作者:大學(xué)生新聞網(wǎng) 來源:大學(xué)生新聞網(wǎng)
- C語言判斷三角形的類型
- 根據(jù)輸入的三角形的三條邊判斷三角形的類型,并輸出其面積和類型。
- 03-05 關(guān)注:1
- C語言求n的階乘(n!)
- 從鍵盤輸入一個數(shù),求出這個數(shù)的階乘,即 n!。
- 03-05 關(guān)注:3
- C語言分塊查找算法,索引順序查找算法
- 例如,采用分塊查找法在有序表 11、12、18、28、39、56、69、89、96、122、135、146、156、256、298 中查找關(guān)鍵字為 96 的元素。
- 03-05 關(guān)注:0
- C語言二分查找算法,折半查找算法
- 本實例采用二分查找法查找特定關(guān)鍵字的元素。要求用戶輸入數(shù)組長度,也就是有序表的數(shù)據(jù)長度,并輸入數(shù)組元素和査找的關(guān)鍵字。
- 03-05 關(guān)注:1
- C語言歸并排序算法
- 用歸并排序法對一組數(shù)據(jù)由小到大進(jìn)行排序,數(shù)據(jù)分別為 695、458、362、789、12、 15、163、23、2、986。
- 03-05 關(guān)注:3