黑马程序员技术交流社区

标题: 求两个数的最大公约数和最小公倍数 [打印本页]

作者: Mal    时间: 2015-7-18 22:26
标题: 求两个数的最大公约数和最小公倍数
#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;
}

作者: CesC    时间: 2015-7-18 22:41
这种求最大公约数的方法是欧几里德算法。
作者: CesC    时间: 2015-7-18 23:01
这有问题吧,两个数的最小公倍数怎么可能就是两个数相乘。
作者: CesC    时间: 2015-7-18 23:20
CesC 发表于 2015-7-18 23:01
这有问题吧,两个数的最小公倍数怎么可能就是两个数相乘。

看错了,最后除了n。最小公倍数与最大公约数的乘积就是两个数的乘积。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2