划句顾 发表于 2021-6-28 10:09:55

C语言:求两个数的最小公倍数和最大公约数

本帖最后由 划句顾 于 2021-6-28 10:09 编辑

用辗转相除法求两个数的最大公约数:


代码如下:
#include<stdio.h>
int main()
{
        int m,n,u,v,k,r;
        printf("请分别输入u,v:"); //u>0,v>0
        scanf("%d %d",&u,&v);
        m= u;
        n=v;
        while(v!=0)
        {
                r = u % v;
                u = v;
                v = r;
        }
        k = (m*n)/u;
        printf("最大公约数为:%d\n",u);
        printf("最小公倍数为:%d\n",k);
        return 0;
}
运行结果:


static/image/hrline/5.gif
无论怎么u和v哪个大,输出结果都一样
#include<stdio.h>
int main()
{
        int m,n,u,v,k,r,i=0;
        while(i<2)
        {       
                printf("请分别输入u,v:"); //u>0,v>0
                    scanf("%d %d",&u,&v);
                i++;
                 m= u;
                n=v;
                 while(v!=0)
               {
                        r = u % v;
                        u = v;
                        v = r;
               }
                k = (m*n)/u;
                printf("最大公约数为:%d\n",u);
                printf("最小公倍数为:%d\n",k);
        }
        return 0;
}
运行结果:
页: [1]
查看完整版本: C语言:求两个数的最小公倍数和最大公约数