最大公約數:指能夠整除多個整數的最大正整數,而多個整數不能都為零,例如8和12的最大公約數為4;
最小公倍數:兩個或多個整數公有的倍數叫做它們的公倍數,其中除0以外最小的一個公倍數就叫做這幾個整數的最小公倍數,例如6和24的最小公倍數為24。
C語言計算兩個數的最大公約數和最小公倍數的方法:
#1、計算兩個數的最大公約數
根據約數的定義可知,某個數的所有約數必不大於這個數本身,幾個自然數的最大公約數必不大於其中任何一個數。要求任兩個正整數的最大公約數即求出一個不大於其中兩者中的任何一個,但又能同時整除兩個整數的最大自然數。
演算法想法:依照從大(兩個整數中較小的數)到小(到最小的整數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; }
輸出:
#2、計算兩個數的最小公倍數
想法:求任兩個正整數的最小公倍數,即求出一個最小的能同時被兩整數整除的自然數。
程式碼範例:
#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; }
輸出:
#最小公倍數也可以使用最大公約數來求,公式:
● 最小公倍數=兩數的乘積/最大公約(因)數
#以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以追蹤php中文網相關教學欄位! ! !
相關學習推薦:C影片教學
以上是什麼是最大公約數和最小公倍數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!