C++编程第16题

//输入两个正整数m和n,求其最大公约数和最小公倍数。

#include <iostream>

using namespace std;

int main()
{
    int m,n,tran;
    cout<<"m = ";
    cin>>m;
    cout<<"n = ";
    cin>>n;
    if(m<n){
        tran=m;
        m=n ;
        n=tran;
    }//保证m中的数永远是较大的一个

    //求最大公约数
    int yue;
    if(m % n==0){
        yue = n;
        }else{
            for(yue = n-1 ; yue < n; yue--){
                if(m % yue==0 && n % yue==0){
                    break;
                }
            }
        }
        cout<<"最大公约数为 : "<<yue<<endl;

    //求最小公倍数
    int bei;
    if(m%n==0){
        bei=m;
    }else{
        for(bei=m;bei<=m*n;){
            if(bei%n==0&&bei%m==0){
                break;
            }else{
                bei=bei+m;
            }
        }
    }
        cout<<"最小公倍数为 : "<<bei<<endl;

    return 0;
}

你可能感兴趣的:(编程 C++)