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

小乐乐与欧几里得

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

#include <stdio.h>

int main() {
    int a, b;
    int m,n;
    int temp;
    long long out;
    while (scanf("%d %d", &a, &b) != EOF) { // 注意 while 处理多个 case
        // 64 位输出请用 printf("%lld") to
        m = a;
        n = b; 
            if(a>b)
            {
                temp = a%b;
                if(temp == 0)
                out = b+a;
                else
                {
                    while(temp != 0)
                    {
                        temp = a%b;
                        a = b;
                        b = temp;
                    }
                    out = a +(long long) (m/a)*(n/a)*a;
                }     
            }
            if(b>a)
            {
                 temp = b%a;
                if(temp == 0)
                out = b+a;
                else
                {
                    while(temp != 0)
                    {
                        temp = b%a;
                        b = a;
                        a = temp;
                    }
                    out = b + (long long)(m/b)*(n/b)*b;
                }     
            }
            if(a==b)
            out = 2*a;
        
        printf("%lld\n", out);
    }
    return 0;
}

全部评论

相关推荐

2025-12-13 14:51
已编辑
井冈山大学 算法工程师
龙虾x:算法比你强的没有你美,比你美的…..算了已经没有比你美的了
工作两年想退休了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务