题解 | #小乐乐与欧几里得#

小乐乐与欧几里得

https://www.nowcoder.com/practice/da13e0cf321e4df9acd0fdf0a433cbb0

/*#include <stdio.h>
int main() {
   long m=0,n=0;
   scanf("%ld %ld",&m,&n);
    long  x = m*n;
 //求最大公倍数 (算法复杂度过大,不合题意)
    long max = (m>n)?m:n;//三目运算符格式
     while (max%m!=0 || max%n!=0) {
        max++;
// 逻辑或运算符 ||。这意味着,只要 max 不满足其中一个整除条件,循环就会继续。而逻辑与运算符&&必须都满足整除条件才循环,故不成立。
     }
    printf("%ld",max+x/max);
    return 0;
}*/
#include <stdio.h>
int main() {
    long m = 0, n = 0;
    scanf("%ld %ld", &m, &n);
    long  x = m * n; //最大公约数*最小公倍数之积等于两积LCM(m, n) = (m * n) / GCD(m, n)
    // 辗转相除法求最大公约数
    while ((m % n) != 0) {
        int temp = m % n;
        m = n;
        n = temp;                 //好处:代码效率较高
    }
    printf("%ld", n + x / n);
    return 0;
}

全部评论

相关推荐

死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
1 1 评论
分享
牛客网
牛客企业服务