题目 1062: 二级C语言-公约公倍

输入两个正整数m和n,求其最大公约数最小公倍数
样例输入
2 3
样例输出
1
6

这题一知半解的,

最小公倍数=两数の积/最大公约数

最大公约数通过迭代法求得(见其下),

作为a,b两数有一个属为有一个为0为无效数据时

《-----a%b等于0(例如4%2等于0,b为最大公约数)------》

算法是欧几里得算法(辗转相除法),会用就行

#include
using namespace std;



int main() {

        int a, b, res;
    while (cin >> a >> b) {  //(3)录入数据无效stopのwhile循环---》有0结束
        int multi = a * b;
        while (res = (a % b)) {  //(2)res是两数的余数 b为0结束--》除数为0无意义
            a = b;
            b = res;       //(1)若res等于0即6%2返回2为最大公约数
        }
        cout << b << endl;  //最大公约数
        cout << multi / b << endl; //最小公倍数
    }

    return 0;
}

你可能感兴趣的:(c语言,c++,算法)