本文主要涉及的問題是如何使用C語言編寫一個求兩個數的公約數的程序。
問如何使用C語言編寫求兩個數的公約數的程序?
求兩個數的公約數可以使用輾轉相除法(又稱歐幾里得算法)實現。具體步驟如下
1. 讀入兩個正整數a和b,保證a>b。
2. 計算a除以b的余數r,如果r等于0,那么b就是公約數。
3. 如果r不等于0,那么將b賦值為r,同時將a賦值為原來的b,重復步驟2。
4. 直到r等于0時,b的值就是公約數。
下面是使用C語言實現的代碼
```cclude
tain()
{t a, b, r;tf("請輸入兩個正整數a和b");f("%d %d", &a, &b);
while (b != 0) {
r = a % b;
a = b;
b = r;
}tf("公約數為%d", a); 0;
例如,輸入a=12,b=18,程序輸出的公約數為6。
問為什么輾轉相除法可以求公約數?
輾轉相除法的基本思想是將兩個數不斷地取余,直到余數為0為止。因為兩個數的公約數也是它們的余數的公約數,所以每次取余后,原來的兩個數的公約數就會變成新的兩個數的公約數。當余數為0時,新的兩個數中的較小數就是原來的兩個數的公約數。所以輾轉相除法可以求公約數。