程序分析:
在數學中,兩個數的最小公倍數=兩個數的乘積/兩數的最大公約數。
求兩個數的最大公約數,運用輾轉相除法:已知兩個整數M和N,假定M>N,則求M%N。
如果余數為0,則N即為所求;如果余數不為0,用N除,再求其余數。。。直到余數為0,則除數就是M和N的最大公約數
代碼:
#include<stdio.h> int gcd(int a, int b)/*求最大公約數*/ { int r, t; if(a<b) { t = a; a = b; b = t; } r = a % b; while(r != 0)/*輾轉相除法*/ { a = b; b = r; r = a % b; } return b; } int lcm(int a, int b)/*求最小公倍數*/ { int r; r = gcd(a, b); return(a * b / r); } int main() { int x, y; printf("請輸入兩個整數:\n"); scanf_s("%d %d", &x, &y); printf("兩個整數最大公約數為:%d\n", gcd(x, y)); printf("兩個數最小公倍數為:%d\n", lcm(x, y)); return 0; }