更新時間:2018年12月25日10時26分 來源:c語言培訓 瀏覽次數:
從鍵盤輸入兩個正整數 a 和 b,求其最大公約數和最小公倍數。
算法思想
利用格式輸入語句將輸入的兩個數分別賦給 a 和 b,然后判斷 a 和 b 的關系,如果 a 小于 b,則利用中間變量 t 將其互換。再利用輾轉相除法求出最大公約數,進而求出最小公倍數。最后用格式輸出語句將其輸出。
程序代碼
#include
int main()
{
int a,b,c,m,t;
printf("請輸入兩個數:\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("最大公約數是:\n%d\n",b);
printf("最小公倍數是:\n%d\n",m/b);
}
調試運行結果
當輸入的兩個數為 15 和 65 時,打印出的結果如下所示:
請輸入兩個數:
15 65
最大公約數是:
5
最小公倍數是:
195
當輸入的兩個數為 16 和 72 時,打印出的結果如下所示:
請輸入兩個數:
16 72
最大公約數是:
8
最小公倍數是:
144
總結
實例中用到了輾轉相除法來求最大公約數。在求最小公倍數時要清楚最大公約數和最小公倍數的關系,即兩數相乘的積除以這兩個數的最大公約數就是最小公倍數。