問題分析
計算最大公約數時用輾轉相除法
例如:98 30
98%30 餘數8
30%8 餘數6
8%6 餘數2
6%2 餘數0
即2是最大公約數
計算最小公倍數時用n*m/最小公倍數的公式
#include<iostream>
using namespace std;
int fun1(int n,int m)//求最大公約數的函數
{
while(n%m)
{
int a = n;
int b = m;
n = b;
m = a % b;
}
return m;
}
int fun2(int n, int m)//求最小公倍數的函數
{
return n * m / fun1(n, m);
}
int main()
{
int n, m;
cout << "請輸入兩個數:";
cin >> n >> m;
cout << "最大公約數爲:";
cout << fun1(n, m) << endl;
cout << "最小公倍數爲:";
cout << fun2(n, m) << endl;
system("pause");
return 0;
}