21xrx.com
2024-12-22 22:51:48 Sunday
登录
文章检索 我的文章 写文章
如何用C语言求出两个数的最大公约数
2023-06-19 18:21:51 深夜i     --     --
最大公约数 C语言 辗转相除法 欧几里得算法

在C语言中,我们可以使用辗转相除法或欧几里得算法来求解两个数的最大公约数。辗转相除法的基本思想是,用较大数除以较小数,得到余数r,再用较小数去除r,得到新的余数,不断重复这个过程,直到余数为0时,即可得到最大公约数。

而欧几里得算法则是依赖于两个数a,b的余数c和b之间的关系。当c等于0时,b即为最大公约数。如果c不等于0,那么b就作为新的a,c作为新的b,继续进行上述过程。这个过程会不断迭代,直到c等于0为止。

下面是一个使用辗转相除法求两个数的最大公约数的C语言代码示例:


#include

int gcd(int x, int y)

{

  int temp;

  while (y != 0)

  

    temp = x % y;

    x = y;

    y = temp;

  

  return x;

}

int main()

{

  int a, b;

  printf("请输入两个数:\n");

  scanf("%d%d", &a, &b);

  int c = gcd(a, b);

  printf("%d和%d的最大公约数是:%d\n", a, b, c);

  return 0;

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复