共計(jì) 1101 個(gè)字符,預(yù)計(jì)需要花費(fèi) 3 分鐘才能閱讀完成。
自動寫代碼機(jī)器人,免費(fèi)開通
丸趣 TV 小編給大家分享一下 C 語言怎么樣計(jì)算兩個(gè)數(shù)的最大公約數(shù)和最小公倍數(shù),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
如果有一個(gè)自然數(shù) a 能被自然數(shù) b 整除,則稱 a 為 b 的倍數(shù),b 為 a 的約數(shù)。最大公約數(shù)指兩個(gè)或多個(gè)整數(shù)共有約數(shù)中最大的一個(gè)。而,最小公倍數(shù)是兩個(gè)或多個(gè)整數(shù)公有的倍數(shù)中除 0 以外最小的那個(gè)公倍數(shù)。
計(jì)算兩個(gè)數(shù)的最大公約數(shù)
根據(jù)約數(shù)的定義可知,某個(gè)數(shù)的所有約數(shù)必不大于這個(gè)數(shù)本身,幾個(gè)自然數(shù)的最大公約數(shù)必不大于其中任何一個(gè)數(shù)。要求任意兩個(gè)正整數(shù)的最大公約數(shù)即求出一個(gè)不大于其中兩者中的任何一個(gè),但又能同時(shí)整除兩個(gè)整數(shù)的最大自然數(shù)。
算法思路:按照從大(兩個(gè)整數(shù)中較小的數(shù))到小(到最小的整數(shù) 1)的順序求出第一個(gè)能同時(shí)整除兩個(gè)整數(shù)的自然數(shù),即為所求。
代碼示例:
#include stdio.h
int main()
int m, n, temp, i;
printf( 請輸入任意 2 個(gè)數(shù):\n
scanf( %d%d , m,
if(m n) /* 比較大小,使得 m 中存儲大數(shù),n 中存儲小數(shù) */
{ /* 交換 m 和 n 的值 */
temp=m;
m=n;
n=temp;
for(i=n; i i--) /* 按照從大到小的順序?qū)ふ覞M足條件的自然數(shù) */
if(m%i==0 n%i==0)
{/* 輸出滿足條件的自然數(shù)并結(jié)束循環(huán) */
printf(%d 和 %d 的最大公約數(shù)為: %d\n , m, n, i);
break;
return 0;
}
輸出:
計(jì)算兩個(gè)數(shù)的最小公倍數(shù)
思路:求任意兩個(gè)正整數(shù)的最小公倍數(shù),即求出一個(gè)最小的能同時(shí)被兩整數(shù)整除的自然數(shù)。
代碼示例:
#include stdio.h
int main()
int m, n, temp, i;
printf( 請輸入任意 2 個(gè)數(shù):\n
scanf( %d%d , m,
if(m n) /* 比較大小,使得 m 中存儲大數(shù),n 中存儲小數(shù) */
{ /* 交換 m 和 n 的值 */
temp=m;
m=n;
n=temp;
for(i=m; i i++) /* 從大數(shù)開始尋找滿足條件的自然數(shù) */
if(i%m==0 i%n==0)
{/* 輸出滿足條件的自然數(shù)并結(jié)束循環(huán) */
printf(%d 和 %d 的最小公倍數(shù)為: %d\n , m, n, i);
break;
return 0;
}
輸出:
最小公倍數(shù)也可以使用最大公約數(shù)來求,公式:
● 最小公倍數(shù) = 兩數(shù)的乘積 / 最大公約(因)數(shù)
以上是“C 語言怎么樣計(jì)算兩個(gè)數(shù)的最大公約數(shù)和最小公倍數(shù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!
向 AI 問一下細(xì)節(jié)丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!