如何用C语言实现求最大公约数的算法?
时间: 2024-11-03 18:14:50 浏览: 33
C语言实现最大公约数和最小公倍数算法
在C语言中,我们可以使用欧几里得算法(Euclidean Algorithm)来求两个整数的最大公约数(GCD)。下面是一个简单的递归版本的实现:
```c
#include <stdio.h>
// 递归函数,计算两个数的最大公约数
int gcd(int num1, int num2) {
if (num2 == 0)
return num1; // 当num2为0时,返回num1作为结果
else
return gcd(num2, num1 % num2); // 递归调用,将第二个数和第一个除以第二个的余数做交换
}
int main() {
int num1, num2;
printf("请输入两个整数:");
scanf("%d %d", &num1, &num2);
int result = gcd(num1, num2);
printf("这两个数的最大公约数是:%d\n", result);
return 0;
}
```
在这个程序中,用户输入两个整数,然后`gcd()` 函数通过不断取余数的方式逐步缩小待处理的数,直到其中一个变为0,此时另一个数即为最大公约数。
阅读全文