最小公倍数和最大公约数 在学校的时候 不管学什么编程 练习总会有这个题 看起来挺简单的
其实 它就是那么的简单 
在编代码之前 我们可以做一下这样的假设
有两个数 m、n
最大公约数是a
那么 m = b * a;
n = c * a;
那么 最小公倍数k = a * b * c;
k = m * n / a;
所以 求出最大公约数a是关键
那说到这里 最大公约数咋求呢 
公约数就是m、n都能整除的数且是最大的那个 但是不能比m、n其中一个大 必须小于等于 m、n中最小的那个数
那么就把m、n中最小的数赋值给smallNumber,大得数赋值给largeNumber, 然后从 2 到smallNumber之间遍历
value来记录他们公约数 知道循环到smallNumber 最后value 就是最大的那个公约数
那么,下面就用代码 来实现这个小小的算法 呵呵呵呵呵呵呵
//声明一个函数 求得m、n的最大公约数
int maxCommonDivide(int m,int n){
    int value,smallNumber,largeNumber;
    
    /*
    //求出最大数和最小数
    largeNumber = m > n ? m : n;
    smallNumber = m < n ? m : n;
     */
    if (m >= n) {
        smallNumber = n;
        largeNumber = m;
    }
    if (n > m) {
        smallNumber = m;
        largeNumber = n;
    }
    
    for (int i = 2; i <= smallNumber; i++) {
        if ((smallNumber % i == 0) && (largeNumber % i == 0)) {
            value = i;
        }
    }
    return value;
}
//声明并实现一个函数 根据最大公约数来求出最小公倍数
int minCommonMultiple(int m, int n){
    return m * n / maxCommonDivide(m, n);
}
int main(int argc, const char * argv[]){
    int maxCommonDivideNumber = maxCommonDivide(19, 9);
    int minCommonMultipleNumber = minCommonMultiple(19, 9);
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/qq1791422018/article/details/47209567