最大公約數最小公倍數問題

問題分析

計算最大公約數時用輾轉相除法

例如: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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章