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

小乐乐与欧几里得

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

#include<stdio.h>
int main()
{
    long long n,m,a,b,c,e;//用long long定义,之所以这样,是因为测试的数据太大,
                          //a为被除数,b为除数,c为余数,e为最小公倍数
    scanf("%lld %lld",&n,&m);//输入两个正整数n和m
    a=(n>=m?n:m);//把n和m中最大的放在被除数上
    b=(n>=m?m:n);//把n和m中最小的放在除数上
    c=a%b;//取余
    while(c!=0)//辗转相除法求最大公约数
    {
        a=b;//把原除数放在被除数
        b=c;//把余数放在除数
        c=a%b;//进行取余操作
    }
    e=n*m/b;//两数之积等同于最大公约数与最小公倍数之积,是个定理
    printf("%lld",e+b);//输出最大公约数与最小公倍数的和
    return 0;
}

总结:

➗前面的是被除数,后面的是除数

辗转相除法求最大公约数

两数之积等于最大公约数与最小公倍数之积

全部评论

相关推荐

微风不断:兄弟,你把四旋翼都做出来了那个挺难的吧
点赞 评论 收藏
分享
耀孝女:就是你排序挂了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-27 10:52
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务