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