更新時間:2018年12月25日10時26分 來源:c語言培訓(xùn) 瀏覽次數(shù):
從鍵盤輸入兩個正整數(shù) a 和 b,求其最大公約數(shù)和最小公倍數(shù)。
算法思想
利用格式輸入語句將輸入的兩個數(shù)分別賦給 a 和 b,然后判斷 a 和 b 的關(guān)系,如果 a 小于 b,則利用中間變量 t 將其互換。再利用輾轉(zhuǎn)相除法求出最大公約數(shù),進而求出最小公倍數(shù)。最后用格式輸出語句將其輸出。
程序代碼
#include
int main()
{
int a,b,c,m,t;
printf("請輸入兩個數(shù):\n");
scanf("%d%d",&a,&b);
if(a
{
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ù)。