公約數是指兩個或多個整數共有約數中的一個,求公約數是在數學中常見的問題。在C語言中,可以通過輾轉相除法等算法來計算公約數。
1. 輾轉相除法
輾轉相除法,也稱歐幾里得算法,是求公約數的一種方法。其基本思想是用較大數除以較小數,再用除數除以出現的余數,如此反復,直到余數為零為止。此時,的除數即為公約數。
```cttt b)
while (b != 0)
{p = a % b;
a = b;p;
} a;
2. 更相減損術
更相減損術是另一種求公約數的方法。其基本思想是用較大數減去較小數,然后繼續用差值和較小數相減,如此反復,直到兩數相等為止。此時,的數即為公約數。
```cttt b)
if (a == b)
{ a;
}
if (a< b)
{ gcd(b, a);
}
else
{ gcd(a - b, b);
}
C語言求公約數的方法有很多種,常用的有輾轉相除法和更相減損術。兩種方法各有優缺點,可以根據實際情況選擇合適的算法。