21xrx.com
2025-04-25 02:37:04 Friday
文章检索 我的文章 写文章
C语言中求最大公因数的方法及实现
2023-06-15 09:16:56 深夜i     13     0
C语言 最大公因数 辗转相减法 辗转相除法

在C语言中,求两个数的最大公因数是一项基本的算法问题。最常用的方法是辗转相减法和辗转相除法。辗转相减法指的是用较大的数减去较小的数,然后用得到的差值再去减较小的数,直到两数相等为止,这时的相等的数就是最大公因数。而辗转相除法的思路是将两个数都连续相除,直到余数为0,这时除数就是最大公因数。

下面是使用辗转相减法和辗转相除法的C语言实现代码:

(1)辗转相减法

#include 
int gcd(int a, int b) {
  if (a == b) return a;
  if (a < b) return gcd(b - a, a);
  return gcd(a - b, b);
}
int main() {
  int a, b;
  printf("请输入两个正整数:");
  scanf("%d %d", &a, &b);
  printf("它们的最大公约数是:%d\n", gcd(a, b));
  return 0;
}

(2)辗转相除法

#include 
int gcd(int a, int b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
int main() {
  int a, b;
  printf("请输入两个正整数:");
  scanf("%d %d", &a, &b);
  printf("它们的最大公约数是:%d\n", gcd(a, b));
  return 0;
}

  
  

评论区

请求出错了