A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

#include <stdio.h>

int main(int argc, const char * argv[]) {
   
    int r,p,m=0,n=0;
   
    printf("请输入2个正整数m和n\n");
    scanf("%d%d",&m,&n);
    if (m>n) {
        int temp;
        temp=m;m=n;n=temp;
        
    }
     p=m*n;
   
    while (m!=0) {
        r=n%m;n=m;m=r;
    }

    printf("最大公约数为%d\n",n );
    printf("最小公倍数为%d\n",p/n );
   
   
   
    return 0;
}

3 个回复

倒序浏览
这种求最大公约数的方法是欧几里德算法。
回复 使用道具 举报
这有问题吧,两个数的最小公倍数怎么可能就是两个数相乘。
回复 使用道具 举报
CesC 发表于 2015-7-18 23:01
这有问题吧,两个数的最小公倍数怎么可能就是两个数相乘。

看错了,最后除了n。最小公倍数与最大公约数的乘积就是两个数的乘积。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马