您好,登錄后才能下訂單哦!
小編給大家分享一下C語言怎么樣計算兩個數的最大公約數和最小公倍數,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
如果有一個自然數a能被自然數b整除,則稱a為b的倍數,b為a的約數。最大公約數指兩個或多個整數共有約數中最大的一個。而,最小公倍數是兩個或多個整數公有的倍數中除0以外最小的那個公倍數。
計算兩個數的最大公約數
根據約數的定義可知,某個數的所有約數必不大于這個數本身,幾個自然數的最大公約數必不大于其中任何一個數。要求任意兩個正整數的最大公約數即求出一個不大于其中兩者中的任何一個,但又能同時整除兩個整數的最大自然數。
算法思路:按照從大(兩個整數中較小的數)到小(到最小的整數1)的順序求出第一個能同時整除兩個整數的自然數,即為所求。
代碼示例:
#include<stdio.h> int main() { int m, n, temp, i; printf("請輸入任意2個數:\n"); scanf("%d%d", &m, &n); if(m<n) /*比較大小,使得m中存儲大數,n中存儲小數*/ { /*交換m和n的值*/ temp=m; m=n; n=temp; } for(i=n; i>0; i--) /*按照從大到小的順序尋找滿足條件的自然數*/ if(m%i==0 && n%i==0) {/*輸出滿足條件的自然數并結束循環*/ printf("%d 和 %d 的最大公約數為: %d\n", m, n, i); break; } return 0; }
輸出:
計算兩個數的最小公倍數
思路:求任意兩個正整數的最小公倍數,即求出一個最小的能同時被兩整數整除的自然數。
代碼示例:
#include<stdio.h> int main() { int m, n, temp, i; printf("請輸入任意2個數:\n"); scanf("%d%d", &m, &n); if(m<n) /*比較大小,使得m中存儲大數,n中存儲小數*/ { /*交換m和n的值*/ temp=m; m=n; n=temp; } for(i=m; i>0; i++) /*從大數開始尋找滿足條件的自然數*/ if(i%m==0 && i%n==0) {/*輸出滿足條件的自然數并結束循環*/ printf("%d 和 %d 的最小公倍數為: %d\n", m, n, i); break; } return 0; }
輸出:
最小公倍數也可以使用最大公約數來求,公式:
● 最小公倍數=兩數的乘積/最大公約(因)數
以上是“C語言怎么樣計算兩個數的最大公約數和最小公倍數”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。