m0_62703284 2021-10-29 01:37 采纳率: 100%
浏览 268
已结题

C语言实训练习(欧几里得求最大公约数

编写程序,求两个数的最大公约数(GCD),例如:12 和 28 的最大公约数是 4。
求最大公约数的经典算法是欧几里德(Euclid)算法,方法如下。分别让变量 m 和 n 存储两个数的值。如果 n 为 0,那么停止操作,m 中的值就是 GCD;否则,计算 m 除以 n 的余数 r,把 n 保存到 m 中,并把余数 r 保存到 n 中。然后重复上述过程,每次都先判定 n 是否为 0。

输入格式:

在一行中给出 2 个整数 A 和 B,其中 0≤A≤2
30
, 0≤B≤2
30

输出格式:

输出 A 和 B 的最大公约数。

输入样例:

  • 写回答

3条回答 默认 最新

  • CSDN专家-黄老师 2021-10-29 01:39
    关注
    
    #include <stdio.h>
    
    int main()
        {
            int m = 0;
            int n = 0;
            int r = 0;
            scanf("%d %d",&m,&n);
            while(r=m%n)
            {
                m = n;
                n = r;
            }
            printf("%d\n",n);
            return 0;
        }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 11月5日
  • 已采纳回答 10月29日
  • 创建了问题 10月29日